在使用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页面。
感谢。
答案 0 :(得分:0)
form-login
元素中有另一个名为always-use-default-target
的元素,它在登录后定义了重定向规则。如果此属性的值设置为false
,则只有在直接请求登录页面后,才会将用户重定向到default-target-url
。
答案 1 :(得分:0)
我找到了一个解决方法。不是最好的解决方案,但是,如果有人有更好的展示,我会全力以赴。当重定向到凭据的登录页面时,我将在会话中保存数据。当注册用户登录时,它会进入控制器,我从会话中获取数据并将其重定向到所需的页面。 感谢您的支持...... :)