如何阻止除loginpage以外的所有页面?

问题描述:

我想用Spring Security阻止除登录和错误页面以外的所有页面,但是如果我做了pattern="/*"它将绝对锁定所有页面并导致无尽的重定向。如何锁定除登录和错误页面以外的所有页面以进行授权?如何阻止除loginpage以外的所有页面?

<http auto-config="true"> 
    <intercept-url pattern="/" access="ROLE_USER"/> 
    <form-login 
     login-page="/login" 
     authentication-failure-url="/login?error" 
     username-parameter="username" 
     password-parameter="password"/> 
    <logout logout-success-url="/login?logout"/> 
    <csrf/> 
</http> 

<authentication-manager> 
    <authentication-provider> 
     <user-service> 
      <user name="root" password="root" authorities="ROLE_USER"/> 
     </user-service> 
    </authentication-provider> 
</authentication-manager> 

你可以访问第一拦截登录和错误页面匿名然后拦截所有网页,拦截有序基于为了你写它,就像

<http> 
<intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
<intercept-url pattern="/**" access="ROLE_USER" /> 
<form-login login-page='/login.jsp'/> 
</http> 

春季安全文档中here