Spring security spring没有重定向到默认的目标url?

Spring security spring没有重定向到默认的目标url?,spring-security,Spring Security,我正在使用spring安全性进行身份验证。身份验证工作正常。但在身份验证之后,它不会重定向到前面提到的在spring安全配置文件中使用默认目标url的html。我得到了一个简单的信息:成功。但不是已配置的html页面。我在下面添加了一行用于重定向 <form-login login-page="/login.jsp" default-target-url="/welcome.html"/> 我是否缺少要配置的内容 谢谢 如果用户在请求受保护的资源后被发送到登录页面,则他们将在成

我正在使用spring安全性进行身份验证。身份验证工作正常。但在身份验证之后,它不会重定向到前面提到的在spring安全配置文件中使用默认目标url的html。我得到了一个简单的信息:成功。但不是已配置的html页面。我在下面添加了一行用于重定向

<form-login login-page="/login.jsp" default-target-url="/welcome.html"/>

我是否缺少要配置的内容


谢谢

如果用户在请求受保护的资源后被发送到登录页面,则他们将在成功登录后被发送到最初请求的页面。仅当用户在未首先请求受保护资源的情况下登录(即,他们直接导航到登录页面)时,才会使用。如果您总是希望转到默认的目标url,则可以指定=“true”,如下例所示

<form-login login-page="/login.jsp" 
            default-target-url="/welcome.html" 
            always-use-default-target="true"/>

一个有趣的问题是,如果浏览器请求一个需要经过身份验证的会话的资源,例如请求一个需要用户登录的javascript文件,这将生成一个403错误,如果您在spring或web.xml中配置了错误页面,则会将用户重定向到该错误,但是用户永远不会看到这一点


然后,当用户登录时,spring认为用户请求的最后一件事是错误页面,因此用户被定向到错误页面,而不是您在spring中配置的默认页面。我知道这是一个相当老的问题,但一些用户现在也可能有此问题

  • 确保您可以访问
    welcome.html
    页面(相对于上下文路径)。您可以删除
    截取url
    或在登录后直接访问它
  • 确保您还指定了
    始终使用default target=“true”
  • 如果指定了会话管理,请确保没有首先重定向到无效的会话url

  • 正如您在图中所看到的,存在某种糟糕的设计(在我看来,它应该总是重定向到默认的目标url)。当您从禁止的资源转到登录url时,它会将您重定向到该url,而不会通过
    默认目标url
    。 只要使用
    始终使用default target=“true”
    ,您就会有渴望的行为


    我遇到了类似的问题,上面的答案给了我一个提示,但由于我直接从Java类使用configs,以下内容帮助了我:

    在中,您可以找到:

    defaultSuccessUrl(字符串defaultSuccessUrl,布尔值alwaysUse)

    因此,当发生变化时

    .defaultSuccessUrl("/home")
    


    问题解决了。

    这就是问题所在。尽管我只有默认的目标url,但在成功登录后,它让我无法访问strange/FAVICON.ICO。这就是我要找的;)谢谢你,这对我有帮助。查看javadoc://***指定如果用户在进行身份验证之前没有访问过安全页面或{@code alwaysUse},则在成功进行身份验证后将重定向到哪里*为true。*/我从上面了解到,如果未首先访问安全页面,则除非将标志设置为true,否则不会发生重定向。
    .defaultSuccessUrl("/home", true)