Spring Security-在重定向到登录时保留URL参数


问题内容

好。

可以说我有一个安全的网址格式

/secure/link-profile

(可选)可以附加url参数。

/secure/link-profile?firstName=Bob&secondName=Smith&membershipNumber=1234

我怎样才能使这些URL参数被带到登录页面?

/login?firstName=Bob&secondName=Smith&membershipNumber=1234

基本前提是我们提供与第三方的奖励集成,后者将把他们的用户发送给我们。他们将被带到一个页面,以将其第三者帐户/个人资料与其/我们的网站用户相关联。但是,如果他们没有我们的现有帐户,则在登录页面上,他们将转到注册页面,然后我们希望预先填充他们的一些详细信息,这些信息已由第三者转交给我们。

提前致谢

Spring安全性2.0.7.RELEASE Spring框架3.1.1.RELEASE


问题答案:

请参阅法buildRedirectUrlToLoginPage(HttpServletRequest request, ...)LoginUrlAuthenticationEntryPoint

如果我正确理解了您想要实现的目标,那么我认为应该足以在子类中重写此方法,复制原始方法,但是urlBuilder.setQuery(request.getQueryString())在构建url时还要进行调用。

然后,您只需要ExceptionTranslationFilter使用此自定义的入口点配置。