0

我们的 Spring MVC 应用程序使用以下表单登录配置:

<security:form-login login-page="/login"
            authentication-failure-url="/login?failure=true" login-processing-url="/login/process"
            username-parameter="email" password-parameter="password"
            always-use-default-target="false" default-target-url="/welcome" />

当用户访问受保护的 url 时,此设置会在将他们重定向到该 url 之前让他们登录。但是如果新用户到达登录页面,他们会点击一个链接来创建一个新帐户,然后他们会被重定向到欢迎页面(如预期的那样)。

如何在创建新帐户时保存原始目标 URL,并在创建帐户后将其重定向到该目标?

4

2 回答 2

0

我认为您可以这样定义一个bean:

 @Component
 @Scope("session")
 class sessionPath{
 String path;
 //setter getter
}

并保存每个控制器中的当前路径;在您想要的任何地方使用它。
如果您不喜欢在每个控制器中编写代码,您可以使用 Aop 连接点自动保存用户上次会话。还添加触发器以创建新的用户控制器以调用会话并重定向她。

于 2013-09-28T16:42:20.353 回答
0

想出了如何做到这一点:让spring security在登录页面的查询字符串中添加返回url

添加一个 bean 并与entry-point-refin关联security:http。使 bean 扩展LoginUrlAuthenticationEntryPoint和覆盖commence方法以将请求 URI 保存在会话中

于 2013-10-17T16:58:01.000 回答