0

在使用 spring security 时,我为 ROLE_ANONYMOUS 用户提供了一个特定页面。

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

spring security的同一个http标签里还有很多其他的拦截url。这是我的春季安全代码:

<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 页面。

谢谢。

4

2 回答 2

0

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

于 2013-05-29T11:40:20.437 回答
0

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

于 2013-05-28T15:25:51.903 回答