shiro ajax请求返回json,springboot+shiro 02 - 异步ajax请求无权限时,返回json格式数据...

博客: https://www.cnblogs.com/youxiu326/p/shiro-01.html

github:https://github.com/youxiu326/sb_shiro_session.git

在原有基础上添加 SimpleFormAuthenticationFilter

/**

* 自定义过滤器,ajax请求数据 以json格式返回

* Created by lihui on 2019/2/28.

*/

public class SimpleFormAuthenticationFilter extends FormAuthenticationFilter {

private static final Logger log = LoggerFactory.getLogger(SimpleFormAuthenticationFilter.class);

@Override

protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {

if (isLoginRequest(request, response)) {

if (isLoginSubmission(request, response)) {

if (log.isTraceEnabled()) {

log.trace("Login submission detected. Attempting to execute login.");

}

return executeLogin(request, response);

} else {

if (log.isTraceEnabled()) {

log.trace("Login page view.");

}

return true;

}

} else {

HttpServletRequest httpRequest = WebUtils.toHttp(request);

if (isAjax(httpRequest)) {

HttpServletResponse httpServletResponse = WebUtils.toHttp(response);

httpServletResponse.sendError(401);

return false;

} else {

if (log.isTraceEnabled()) {

log.trace("Attempting to access a path which requires authentication. Forwarding to the " +

"Authentication url [" + getLoginUrl() + "]");

}

saveRequestAndRedirectToLogin(request, response);

}

return false;

}

}

/*

* 判断ajax请求

* @param request

* @return

*/

boolean isAjax(HttpServletRequest request){

return (request.getHeader("X-Requested-With") != null && "XMLHttpRequest".equals( request.getHeader("X-Requested-With").toString()) ) ;

}

}

5d87502d4200f6799c8271e715c63545.png

a27ec798d9c1307d970ab09c5a1bad44.png

在ShiroConfig中添加一行

shiroFilterFactoryBean.getFilters().put("authc", new SimpleFormAuthenticationFilter());

login.html 修改

没有添加 SimpleFormAuthenticationFilter 之前

00AAADJY3lnAAAAAACAhHz5WjcAAAAAAADgekGgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAASQqAFAAAAAAAgIQRaAAAAAAAAEkKgBQAAAAAAICEEWgAAAAAAABJCoAUAAAAAACAhBFoAAAAAAAAS8v8DZSYiMujQrnQAAAAASUVORK5CYII=

添加SimpleFormAuthenticationFilter 之后 返回了自定义错误状态码401

3e73b245ac57d54d4a11958bb82957b2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值