Shiro 错误重定向
Shiro error redirection
如何在 Web 应用程序中使 Shiro 重定向错误?
我已经配置好我的 web.xml
<error-page>
<error-code>500</error-code>
<location...</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>...</location>
</error-page>
而且效果很好。但是当 Shiro 处于活动状态并且我故意引发 500 错误时,页面保持空白。
我想我明白了...它是空白的,因为方法 onAccessDenied()
在发生问题的任何地方返回 false
。
要修复它,一种可能的解决方案是:
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response)
throws Exception {
if(!executeLogin(request, response)){
//throw exception
} else {
return true;
}
}
当然要确保 web.xml
中定义的错误页面在 shiro.ini
中是 anon
例如
[urls]
/error500.xhtml = anon
如何在 Web 应用程序中使 Shiro 重定向错误?
我已经配置好我的 web.xml
<error-page>
<error-code>500</error-code>
<location...</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>...</location>
</error-page>
而且效果很好。但是当 Shiro 处于活动状态并且我故意引发 500 错误时,页面保持空白。
我想我明白了...它是空白的,因为方法 onAccessDenied()
在发生问题的任何地方返回 false
。
要修复它,一种可能的解决方案是:
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response)
throws Exception {
if(!executeLogin(request, response)){
//throw exception
} else {
return true;
}
}
当然要确保 web.xml
中定义的错误页面在 shiro.ini
anon
例如
[urls]
/error500.xhtml = anon