提供登录凭据时如何重定向到特定页面

时间:2013-05-28 14:10:23

标签: java spring-mvc spring-security

在使用spring security时,我正在使用ROLE_ANONYMOUS用户提供特定页面。

<intercept-url pattern="/runApp*"
        access="hasAnyRole('User', 'Admin','ROLE_ANONYMOUS')" />

在spring security的同一个http标签中还有许多其他拦截网址。这是我的春季安全码:

<http auto-config="true" use-expressions="true">
<intercept-url pattern='/welcome*' access="hasAnyRole('User', 'Admin')" />
<intercept-url pattern="/runApp*" access="hasAnyRole('User', 'Admin','ROLE_ANONYMOUS')" />
<form-login login-page="/login" authentication-failure-url="/login.jsp?login_error=true" default-target-url="/welcome" />
<logout logout-success-url="/login" invalidate-session="true" />

当用户首次登录时,会重定向到欢迎页面。但是当他想访问runApp页面时,他必须在登录页面中提供他的凭据。但是当他提供登录凭证时,它会重定向到欢迎页面。而我希望它重定向到特定的runApp页面。

感谢。

2 个答案:

答案 0 :(得分:0)

form-login元素中有另一个名为always-use-default-target的元素,它在登录后定义了重定向规则。如果此属性的值设置为false,则只有在直接请求登录页面后,才会将用户重定向到default-target-url

答案 1 :(得分:0)

我找到了一个解决方法。不是最好的解决方案,但是,如果有人有更好的展示,我会全力以赴。当重定向到凭据的登录页面时,我将在会话中保存数据。当注册用户登录时,它会进入控制器,我从会话中获取数据并将其重定向到所需的页面。 感谢您的支持...... :)