0

现在我正在使用与 Spring 集成的 Shiro 来保护我的项目。主要是根据角色过滤请求。现在我遇到了一个问题。例如,在我登录一段时间后,会话结束,此时当我点击一些向后端发送请求的按钮时,由于我的会话结束,该请求肯定被 shiro 拦截了。这就是问题所在。即使 Shiro 提供了一个选择,您也可以配置一些类似的东西

    <property name="unauthorizedUrl" value="/unauthorized.jsp"/>

如果请求未经授权,则分配 url。我认为返回的响应 shiro 应该包括 status.Unauthorized 或 401 错误。我想要做的是在每个 ajax 请求中处理这个错误。但是我不知道在ajax的回调方法中检查状态。有人可以给点建议吗?谢谢

4

1 回答 1

0

您可以将这样的方法添加到您的 SecurityFilters:

def onNotAuthenticated(subject, filter) {
    def redirectToLoginPage = true
    if (filter.request.xhr) {
        filter.response.sendError 403
        redirectToLoginPage = false
    }
    redirectToLoginPage
}
于 2013-11-13T22:21:46.773 回答