shiro 返回 json
来源:互联网 发布:禁止外资参与网络出版 编辑:程序博客网 时间:2024/06/03 15:39
在使用shiro过程中,发现shiro对没有权限的处理都是跳转到配置文件中的unauthorizedUrl。如果是ajax类的请求,需要返回json时,就需要自定义filter并重写onAccessDenied方法。
比如需要在验证用户权限时返回json,就需要自定义roles的filter。
public class MyRolesFilter extends RolesAuthorizationFilter {@Overrideprotected boolean onAccessDenied(ServletRequest request, ServletResponse response)throws IOException {Subject subject = getSubject(request, response);// If the subject isn't identified, redirect to login URLif (subject.getPrincipal() == null) {saveRequestAndRedirectToLogin(request, response);} else {// If subject is known but not authorized, redirect to the// unauthorized URL if there is one// If no unauthorized URL is specified, just return an unauthorized// HTTP status codeString unauthorizedUrl = getUnauthorizedUrl();String ajaxHeader = ((HttpServletRequest)request).getHeader("X-Requested-With");if (ajaxHeader != null && "XMLHttpRequest".equals(ajaxHeader)) {response.reset();response.setContentType("application/json");response.setCharacterEncoding("utf-8");response.getWriter().write("{\"msg\":\"没有权限\"}");response.flushBuffer();}// SHIRO-142 - ensure that redirect _or_ error code occurs - both// cannot happen due to response commit:else if (StringUtils.hasText(unauthorizedUrl)) {WebUtils.issueRedirect(request, response, unauthorizedUrl);} else {WebUtils.toHttp(response).sendError(HttpServletResponse.SC_UNAUTHORIZED);}}return false;}}
这个方法直接复制org.apache.shiro.web.filter.authz.AuthorizationFilter的onAccessDenied方法,黄色部分是自己添加的。思路就是在原来的判断方法前加上对ajax请求的判断,如果是ajax请求,返回json,如果不是,还是走默认的返回方式。阅读全文
0 0
- shiro 返回 json
- shiro拦截器,返回json数据
- shiro拦截AJAX的返回json字符串
- Shiro Ajax请求没有权限返回JSON,没有登录返回JSON
- Shiro Ajax请求没有权限返回JSON,没有登录返回JSON
- shiro修改没有登录或者session失效,根据ajax返回json
- shiro修改没有登录或者session失效,根据ajax返回json
- struts1返回JSON
- grails 中返回 json
- ajax 返回json
- action 返回 json 数据
- AJax 返回 json
- struts2 返回json数据
- SrpingMVC 返回JSON
- Response 返回xml,json
- java 返回json数据
- struts2 返回json
- 使用struts2返回json
- Linux系统下用find命令查找最近修改过的文件
- JVM内存区域划分
- Amazon Dynamo架构分析(一)
- 年底阅读计划
- 列表生成器笔记(Python)
- shiro 返回 json
- Spring入门(AOP API,ProxyFactoryBean其三)
- Hexo+Next主题 文章添加阅读次数,访问量等
- 从奈奎斯特定理到香农定理
- (88)单例模式的应用
- Colored Sticks --欧拉回路,并查集,字典树,
- mybatis和spring的优缺点:
- javaWeb-web项目中加载资源文件路径的两种方式
- 日常笔记-内部类