如何在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错误时页面保持空白。
答案 0 :(得分:1)
我想我明白了......它是空白的,因为方法onAccessDenied()
在问题发生的任何地方都返回false
。
要解决这个问题,一个可能的解决方案就是:
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response)
throws Exception {
if(!executeLogin(request, response)){
//throw exception
} else {
return true;
}
}
当然要确保web.xml
中anon
中定义的错误页面为shiro.ini
e.g。
[urls]
/error500.xhtml = anon