2015-09-21 197 views
0

確保Web應用程序安全的標準方法是禁止對所有內容進行未經身份驗證的訪問並白名單特定的資源。使用彈簧安全性將白名單列入白名單

以下XML片段的所有允許訪問的資源,用不同的含義雖:

<http pattern="/favicon.ico" security="none" /> 

<intercept-url pattern="/favicon.ico" filters="none" /> 

<intercept-url pattern="/favicon.ico" access="permitAll"/> 

<intercept-url pattern="/favicon.ico" access="ROLE_ANONYMOUS" /> 

<intercept-url pattern="/favicon.ico" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

應該使用什麼時候,在什麼情況下?

回答

0

嗨請查看下面提到的每個人的用例。

< HTTP模式= 「/ favicon.ico的」 安全= 「無」/ > 這個過濾器鏈可以在登錄頁面用於從安全刪除。

<截距-URL模式= 「/ favicon.ico的」 過濾器= 「無」/ > 所有這截距URL的第一個是從3.1版本彈簧安全的不兼容。如果您使用的版本低於3.1,則可以使用相同的目的 < http pattern =「/ favicon.ico」security =「none」/ >

<攔截的URL模式=「/ favicon.ico的」訪問=「permitAll」/> 此攔截網址,你可以在情況下使用,如果需要給所有允許用戶誰擁有認證的訪問。

<攔截的URL模式= 「/ favicon.ico的」 訪問= 「ROLE_ANONYMOUS」/ > 這可以讓你的ROLE_ANONYMOUS只能訪問模式。

<攔截的URL模式=「/ favicon.ico的」訪問=「IS_AUTHENTICATED_ANONYMOUSLY」/>

1
<http pattern="/favicon.ico" security="none" /> 

將完全繞過安全過濾器,這通常是你想要的那種做什麼我們正在處理的資源(即favicon.ico)。

如果你

<intercept-url pattern="/favicon.ico" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

你仍然能夠獲得關於當前登錄的用戶(如果有的話)渲染資源時呈現一個頁面,應該沒有登錄訪問的時候(可能是有用的信息但如果用戶已登錄,您仍然希望能夠呈現例如呈現頁面上的用戶名稱)。

permitAll是一樣的東西,但是有EL語法。

ROLE_ANONYMOUS似乎授予對匿名用戶的訪問權限,但拒絕經過反證的用戶。

<intercept-url pattern="/favicon.ico" filters="none" /> 

是舊的語法,就我所知它不再被支持。