shiro 直接访问无权限页面,被拦截后无跳转登录问题?求助

诠释这低调 发布于 2015/03/27 17:14
阅读 12K+
收藏 0

结合shiro安全框架后,凡是发现带有@ResponseBody的方法被拦截后页面并未重定向到403,但返回浏览器控制台响应是403页面代码 页面上不跳转! 
 步骤:
1、浏览器直接输入无权限地址:
http://localhost:8082/XXX/send.htm?page=user/list

2、跳转list.jsp,并请求初始化grid数据
<div id="list_grid" class="mini-datagrid list_table" style="width:100%;height:100%;" allowResize="true"
                url="${ctx}/user/page.htm" .........

3、请求后台方法:
@RequestMapping("/page")
        @ResponseBody
        @RequiresPermissions("user:list")
        public Map<String,Object> page(int pageIndex,int pageSize){
                return userService.userPage(pageIndex, pageSize);
        }

4、此时,shiro RequiresPermissions 检测无权限指向会生效
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
                <property name="securityManager" ref="securityManager" />
                <property name="loginUrl" value="redirect:/login.htm" />
                <property name="successUrl" value="redirect:/index.htm" />
                <property name="unauthorizedUrl" value="redirect:/send.htm?page=error/403" />

5、从而,重定向redirect:/send.htm?page=error/403,正常情况是直接跳转 403页面

但是,实际浏览器控制台输入发送请求:
POST http://localhost:8082/XX/user/page.htm 302 Found 247ms       
GET http://localhost:8082/XX/send.htm?page=error/403 200 OK 113ms

如何处理json的请求拦截?

加载中
0
chuhx
chuhx
参下篇文章 http://blog.csdn.net/chuhx/article/details/51148877
返回顶部
顶部