当前位置: 首页 > 知识库问答 >
问题:

Shiro错误重定向

左丘善
2023-03-14

如何让Shiro重定向Web应用程序中的错误?

我已经配置了我的< code>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个答案

陈飞
2023-03-14

我想我明白了…它是空白的,因为方法onAccessDended()在任何发生问题的地方都返回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
 类似资料:
  • Flask类有重定向函数。调用时,它会返回一个响应对象,并将用户重定向到具有指定状态码的另一个目标位置。 函数的原型如下 - 在上述函数中 - location 参数是响应应该被重定向的URL。 statuscode 参数发送到浏览器的头标,默认为。 response 参数用于实例化响应。 以下状态代码是标准化的 - HTTP_300_MULTIPLE_CHOICES HTTP_301_MOVED

  • 在我的应用程序中,我想使用get映射将我重定向到TopicForm.html文件。我不知道为什么这种具体情况不起作用。在其他映射中,它工作得很好。 Topicform不工作,但当我想重定向到主题时,它工作得很好。 Intelij甚至没有给我映射。 Html文件目录如下所示:

  • 我将spring boot security用作restful服务的ACL。安全适配器如下所示 userdetailservice的快照 我不确定是哪个部分导致了重定向。

  • Flask类有一个redirect()函数。 调用时,它返回一个响应对象,并将用户重定向到具有指定状态代码的另一个目标位置。 redirect()函数的原型如下 - Flask.redirect(location, statuscode, response) 在上面的功能 - location参数是应该重定向响应的URL。 statuscode发送到浏览器的标头,默认为302。 response

  • 我们有Tomcat 9 Web服务器在生产中。我们面临的问题是,如果Tomcat收到任何格式错误的URL,我们希望显示我们应用程序的自定义错误页面,如下所示 http://URL/| 或 http://URL/[ 我在Tomcat应用服务器的web.xml中添加了错误页面标签,如下所示 我们在tomcat的webapps目录下的应用程序根文件夹中有error.html。 每当用户试图请求任何不存在

  • 问题内容: 我要访问一个首先需要(tomcat服务器)身份验证的站点,然后使用POST请求登录,并保留该用户以查看站点的页面。我使用Httpclient 4.0.1 第一次身份验证可以正常运行,但登录时始终不会抱怨此错误:“ 302临时移动” 我保留cookie并保留上下文,但是什么也没有。实际上,登录似乎可行,因为如果我输入了错误的参数或用户||密码,则会看到登录页面。所以我想自动重定向是行不通

  • 问题内容: 我试图将自定义中间件注入OWIN管道,该中间件包装来自MS 的可用中间件,以便在AngularJS中支持HTML 5模式。我一直在遵循此指南:http : //geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in- asp.net-vnext.aspx 从我可以收集到的信息来看,中间件将请求传

  • 我正在开发一个API网关,将请求重定向到一些微服务。这是application.properties文件的一部分: 我正在尝试重定向来自API网关的请求(http://localhost:8080/PetApp/auth/login)到正在运行的服务(http://localhost:8086/PetApp_Auth/auth/generateToken)我已经和邮递员一起将请求直接发送到微服务,