2012-06-04 48 views
1

我使用spring安全性來驗證我的web應用程序。我可以通過如下配置成功地使用它:用戶登錄驗證使用彈簧安全性的任何url

<http auto-config='true'> 
    <intercept-url pattern="/Login" filters="none" access="ROLE_USER"/> 
    <form-login login-page='/Login' authentication-failure-url="/Login/Failure" 
     default-target-url="/Url"/> 
</http> 

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

上述代碼正常工作,如果我直接從登錄頁面登錄。如果其中一個用戶正在訪問不是登錄頁面的其他網址。現在我想限制用戶訪問任何直接的URL,而無需第一次登錄系統。

我該怎麼做?

回答

2

你需要攔截規則更改爲:

<intercept-url pattern="/**" filters="none" access="ROLE_USER"/> 

您可能還需要從權威性要求exlude登錄頁面。因爲用戶無需登錄即可查看登錄頁面。你可以通過添加:

<intercept-url pattern="/Login" filters="none"/> 
+0

no..its不工作。當更改上面的行時,它將進入無限循環。請提供,如果您有建議 – Krishna

+1

請閱讀我更新的答案。您需要添加一個附加規則來排除登錄頁面。 – nfechner

+0

太好了。感謝您的幫助。它現在有效。 – Krishna

相關問題