shiro 用ajax请求权限问题

我本不帅 发布于 2012/08/24 10:10
阅读 6K+
收藏 0

现在shiro在我的应用中,普通的操作权限均正常。

但下面的两种ajax请求中权限验证失败, 怎么控制其返回json数据,而不是返回一个页面。

1. (ajax请求)没有登录时访问需要权限的方法,会跳转登录页面,这里希望统一返回json数据。

2. (ajax请求)已登录但没有权限访问需要权限的方法,会跳转到无操作权限提示页面,这里也希望统一返回json数据。

请问,我该怎么样实现普通请求和ajax请求在未登录或者无操作权限时的返回信息的分离。

 

加载中
0
罗盛力
罗盛力
假定我们拥有了request和response对象, 通过判断 我们能知道它的请求类型
if (!"XMLHttpRequest".equalsIgnoreCase(httpServletRequest
            .getHeader("X-Requested-With"))) {// 不是ajax请求
        issueSuccessRedirect(request, response);
    } else {
        httpServletResponse.setCharacterEncoding("UTF-8");
        PrintWriter out = httpServletResponse.getWriter();
        out.println("{success:true,message:'登入成功'}");
        out.flush();
        out.close();
    }

0
8446666
8446666

给大家一个Shrio项目的完整Demo:http://www.sojson.com/shiro 一个基于Spring4.25 + Mybatis + Redis 的Demo

本教程包含的内容。

  1. SSM(SpringMVC + Spring +Mybatis)框架的增删改查(含分页),所以如果框架小白也是可以看看的。
  2. View层主要是Freemarker,但是为了考虑到好多人还使用的是JSP,也有一个页面是用JSP实现的,并且框架支持Freemarker 和JSP双View展示(优先找Freemarker)。
  3. Shiro + Redis 的集成,也提供Ehcache的依赖Jar。
  4. Shiro初始权限动态加载。
  5. Shiro自定义权限校验Filter定义,及功能实现。
  6. ShiroAjax请求权限不满足,拦截后解决方案。
  7. ShiroFreemarker标签使用。
  8. ShiroJSP标签使用。
  9. Shiro登录后跳转到最后一个访问的页面。
  10. 用户禁止登录Demo。
  11. 在线显示,在线用户管理(踢出登录)。
  12. 登录注册密码加密传输Demo(详细请见下面讲解)。
  13. 密码修改。
  14. 用户个人中心。
  15. 权限的增删改查。
  16. 角色的增删改查。
  17. 权限->角色->用户之间的关系维护。
  18. 管理员权限的自动添加(当有一个权限创建,自动添加到管理员角色下,保证管理员是最大权限)。
  19. Spring定时任务数据化数据。
  20. 集成多种验证码(包括动态的gif验证码哦)。
返回顶部
顶部