Shiro错误重定向

时间:2017-06-30 13:51:39

标签: shiro

如何在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错误时页面保持空白。

1 个答案:

答案 0 :(得分:1)

我想我明白了......它是空白的,因为方法onAccessDenied()在问题发生的任何地方都返回false

要解决这个问题,一个可能的解决方案就是:

@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response)
        throws Exception {
    if(!executeLogin(request, response)){
        //throw exception
    } else {
        return true;
    }
}

当然要确保web.xmlanon中定义的错误页面为shiro.ini

e.g。

[urls]
/error500.xhtml = anon