您的位置:首页 > Web前端 > JavaScript

shiro 登录 过滤器 返回json

2018-01-11 11:01 267 查看
/**
* 表示访问拒绝时是否自己处理,如果返回true表示自己不处理且继续拦截器链执行,返回false表示自己已经处理了(比如重定向到另一个页面)
* @param request
* @param response
* @return
* @throws Exception
*/
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
if (this.isLoginRequest(request, response)) {
if (this.isLoginSubmission(request, response)) {
return this.executeLogin(request, response);
} else {
return true;
}
} else {
if(AjaxUtil.isAjaxRequest(request)){
response.setContentType("application/json;charset=UTF-8");
response.getWriter().print("你咩有登录,跳转到登录页面");
}else{
this.saveRequestAndRedirectToLogin(request, response);
}
return false;
}
}


请先阅读点击打开链接

在自己实现的form登录过滤器里加上ajax提交验证,如果是ajax验证则返回json数据即可

在父类FormAuthenticationFilter 里onAccessDenied该方法是直接调用saveRequestAndRedirectToLogin

我这里做了ajax验证判断,这是登录过滤器,所以我直接返回没有登录信息,如果有其他过滤器 同理即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息