【发布时间】:2012-10-15 14:54:42
【问题描述】:
我刚开始阅读 Spring Security 3.1,我想知道如何在访问我系统上的任何页面之前强制用户通过我的登录页面进行身份验证。在教程中,我看到以下代码
<http use-e xpressions="true">
<intercept-url pattern="/index.jsp" access="permitAll" />
<intercept-url pattern="/secure/extreme/**" access="hasRole('supervisor')" />
<intercept-url pattern="/secure/**" access="isAuthenticated()" />
<intercept-url pattern="/listAccounts.html" access="isAuthenticated()" />
<intercept-url pattern="/post.html" access="hasAnyRole('supervisor','teller')" />
<intercept-url pattern="/**" access="denyAll" />
<form-login />
</http>
从上面的配置我可以看出我必须维护 url 模式的列表。有没有办法简化每个用户必须通过“/login”登录才能访问任何其他页面?
编辑:
我已按如下方式编辑了我的配置,并按预期工作
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/login" access="permitAll" />
<intercept-url pattern="/loginfailed" access="permitAll" />
<intercept-url pattern="/logout" access="permitAll" />
<form-login login-page="/login" default-target-url="/welcome"
authentication-failure-url="/loginfailed" />
<logout logout-success-url="/login" />
<intercept-url pattern="/**" access="isAuthenticated()" />
</http>
【问题讨论】: