0

亲爱的斯宾格勒同胞们,

我在春季偶然发现了拦截网址登录的问题。

如果未登录,我只想将所有页面重定向到我的登录页面。

这是我使用的安全上下文。但是,此代码不允许我访问任何页面:

<security:http auto-config="true">
    <security:form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
    <security:logout logout-success-url="/logout" />
    <security:intercept-url pattern="/login" access="permitAll" />
    <security:intercept-url pattern="/**" access="hasRole(ROLE_USER)" />
</security:http>

谢谢你的帮助。

洛木


根据jonnieM 的帖子更改了我的配置:

下雪了

<security:http auto-config="true">
    <security:intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <security:intercept-url pattern="/**" access="ROLE_USER" />
    <security:form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
    <security:logout logout-success-url="/logout" />
</security:http>

所以我认为“IS_AUTHENTICATED_ANONYMOUSLY”成功了:)

干杯洛姆

4

1 回答 1

4

您应该应用该<http use-expressions="true">设置,否则<intercept-url>'access属性中的值将不会被解释为 Spring EL 表达式。

于 2013-04-13T11:12:56.423 回答