如何从shiro身份验证返回的响应中获取HTTP状态

时间:2013-06-05 16:13:19

标签: jquery authentication httpresponse shiro

现在我使用Shiro与Spring集成来保护我的项目。主要根据角色过滤请求。现在我遇到了一个问题。例如,在我登录一段时间后,会话已经结束,此时当我点击向后端发送请求的一些按钮时,由于我的会话输出,该请求肯定被shiro截获。这就是问题所在 存在。尽管Shiro给出了一个选择,你可以配置像

这样的东西
    <property name="unauthorizedUrl" value="/unauthorized.jsp"/>

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

1 个答案:

答案 0 :(得分:0)

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

def onNotAuthenticated(subject, filter) {
    def redirectToLoginPage = true
    if (filter.request.xhr) {
        filter.response.sendError 403
        redirectToLoginPage = false
    }
    redirectToLoginPage
}