登录后使用spring security重定向到特定URL

时间:2014-10-29 16:35:31

标签: java spring-security

我有一个开发项目的案例。 我的应用程序页脚中有一些课程链接,每当用户点击同一时间我们会向他显示登录或注册弹出(如果他没有登录)或重定向到课程页面(如果他已登录) 。 所以现在我想要的是,每当用户在登录前点击课程时,他/她应该在登录后重定向到课程详细信息页面。

我正在使用spring security进行身份验证。让我知道如何使用Spring安全身份验证实现这一目标?

1 个答案:

答案 0 :(得分:0)

这是一个微不足道的用例。

页脚中的链接应该是“安全区域”(例如“... / secured / page1”,“... / secured / page2”)。您在security-beans.xml中配置了什么是“安全区域”。

当用户单击并尝试访问安全资源时,spring会检查用户是否已通过身份验证。如果没有,它会将他重定向到登录页面。 (在登录页面中,您可以添加“创建帐户”的链接)。

这是您配置“安全区域”的方式:

<sec:http authentication-manager-ref="authenticationManager">
   <sec:intercept-url pattern="/secured/**" access="ROLE_USER" />
   ...

Spring保存“redirect url”,如果用户没有登录,则会被重定向到登录页面,登录后spring使用“redirect uri”并将其发送到“安全资源”,这是课程页面在你的情况下。详细信息:登录后,班级SavedRequestAwareAuthenticationSuccessHandler使用包含原始请求URI的RequestCache

如果您需要弹出窗口,请参阅:Spring security opening a popup login