我有一个网络应用程序,当用户单击个人资料链接时,如果他没有登录,我想将他重定向到登录页面,然后当他登录时,我会将他发送回他所拥有的链接原来点击了。
在这种情况下,他的个人资料。
我已经完成了将他重定向到登录页面的部分,但我试图找出如何记住他的初始点击,并在他成功登录后重定向到此页面。
我正在使用 Spring Security 进行登录。
幸运的是,Spring Security 具有内置功能,可以记住最初请求的 URL,并在用户成功登录后将其重定向到那里。您的问题的快速答案是您需要通过设置来启用此功能始终使用默认目标在 Spring Security 配置中将选项设置为 false。
例如,以下是 Spring Security 配置中的公共行:
<form-login
login-page="/login.html"
authentication-failure-url="/login.html?status=LOGIN_FAILURE"
default-target-url="/secure/index.html"
always-use-default-target="false" />
此配置将使以下两个流程成为可能:
Flow #1
- 莎莉请求/login.html
- Sally 提供了有效的用户名和密码
- Sally 被重定向到 /secure/index.html,因为那是默认目标 URL
流程#2(您想要的流程)
- 大卫请求 /secure/kittens.html
- 由于 David 尚未登录,因此他会看到登录页面。
- 提供有效的用户名和密码后,David 被重定向到 /secure/kittens.html,这是他尝试访问的原始页面。 (他没有被带到默认目标 URL因为始终使用默认目标设置为 false。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)