相关疑难解决方法(0)

成功登录后,Spring Security会重定向到上一页

我知道之前已经问过这个问题,但是我在这里遇到了一个特殊的问题.

我使用spring security 3.1.3.

我的Web应用程序中有3个可能的登录案例:

  1. 通过登录页面登录:好的.
  2. 通过限制页面登录:也可以.
  3. 通过非限制页面登录:不行......每个人都可以访问"产品"页面,如果用户登录,用户可以发表评论.因此,登录表单包含在同一页面中,以便允许用户连接.

案例3)的问题是我无法将用户重定向到"产品"页面.无论如何,他们会在成功登录后重定向到主页.

请注意,对于案例2),成功登录后,重定向到受限页面的工作开箱即用.

这是我的security.xml文件的相关部分:

<!-- Authentication policy for the restricted page  -->
<http use-expressions="true" auto-config="true" pattern="/restrictedPage/**">
    <form-login login-page="/login/restrictedLogin" authentication-failure-handler-ref="authenticationFailureHandler" />
    <intercept-url pattern="/**" access="isAuthenticated()" />
</http>

<!-- Authentication policy for every page -->
<http use-expressions="true" auto-config="true">
    <form-login login-page="/login" authentication-failure-handler-ref="authenticationFailureHandler" />
    <logout logout-url="/logout" logout-success-url="/" />
</http>
Run Code Online (Sandbox Code Playgroud)

我怀疑"每个页面的身份验证策略"都要对此问题负责.但是,如果我将其删除,我将无法再登录... j_spring_security_check发送404错误.


编辑:

感谢拉尔夫,我找到了解决方案.所以这就是事情:我使用了这个属性

<property name="useReferer" value="true"/>
Run Code Online (Sandbox Code Playgroud)

拉尔夫给我看了.之后我遇到了我的案例问题1):当通过登录页面登录时,用户停留在同一页面(并没有重定向到主页,就像以前一样).直到此阶段的代码如下:

<!-- Authentication policy for login page -->
<http use-expressions="true" auto-config="true" pattern="/login/**">
    <form-login login-page="/login" authentication-success-handler-ref="authenticationSuccessHandlerWithoutReferer" />
</http>

<!-- Authentication policy for every …
Run Code Online (Sandbox Code Playgroud)

redirect spring login spring-security

53
推荐指数
3
解决办法
10万
查看次数

标签 统计

login ×1

redirect ×1

spring ×1

spring-security ×1