Apache shiro,返回状态 401 而不是重定向到 url
Posted
技术标签:
【中文标题】Apache shiro,返回状态 401 而不是重定向到 url【英文标题】:Apache shiro, return status 401 instead of redirect to url 【发布时间】:2015-11-11 15:36:40 【问题描述】:我们在 Spring MVC REST-ish 应用程序中使用 Apache Shiro;对于我们的 API,返回 HTTP 状态 401(或 419)比重定向到另一个 URL 更有意义;我一直在查看文档,但看不到如何操作。
有人知道怎么做吗? ShiroFilterFactoryBean 中是否有要配置的属性?
【问题讨论】:
我发现我可以重定向到一个页面,并使该页面返回 401 状态:)。还是想看看有没有更好的办法 【参考方案1】:重定向方法有时会被 CORS 策略阻止。我的解决方案是自定义一个AuthenticatingFilter,例如:
public class MyAuthenticationFilter extends FormAuthenticationFilter
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response)
throws Exception
WebUtils.toHttp(response).sendError(HttpServletResponse.SC_UNAUTHORIZED);
return false;
你可以看看这个AuthorizationFilter.java
【讨论】:
以上是关于Apache shiro,返回状态 401 而不是重定向到 url的主要内容,如果未能解决你的问题,请参考以下文章
未经授权的用户在使用 phpunit 测试时返回状态 500 而不是 401
XmlHttpRequest 状态 0 而不是 IE 10 中的 401
ajax 视图上的 login_required 装饰器返回 401 而不是 302