2011-10-24 59 views
4

繼答案here我試圖在我的網站上放置一個公共頁面,但它似乎不起作用。當它重定向到登錄頁面。但是,如果我更改爲filters = none它可以工作,並且該頁面可以在不重定向的情況下查看。Spring security access =「IS_AUTHENTICATED_ANONYMOUSLY,IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED」

我appContext.xml看起來像這樣(當它不工作),/MyPath的相關部分:

<security:intercept-url pattern="/**" access="ROLE_USER" /> 
<security:intercept-url pattern="/Admin/**" access="ROLE_ADMIN" /> 
<security:intercept-url pattern="/MyPath/**" access="IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED" /> 

這工作,但我需要的安全功能,因此不能使用它:

<security:intercept-url pattern="/**" access="ROLE_USER" /> 
<security:intercept-url pattern="/Admin/**" access="ROLE_ADMIN" /> 
<security:intercept-url pattern="/MyPath/**" filters="none" /> 
+2

注意'過濾器= 「無」'似乎已經在Spring 3.1.0被棄用:http://stackoverflow.com/a/5382178/521799 –

回答

6

假設您使用的是最新版本,如果您不需要告訴用戶如何進行匿名身份驗證,則可以使用更簡單的匿名用戶規範形式。

Here's a link to the doc section

不同點在於,我覺得你的問題是排序。訂單確實重要,而且您首先限制最少的模式。嘗試轉動它們。

您可以使用多個元素爲不同的URL集定義不同的訪問需求,但它們將按列出的順序進行評估並使用第一個匹配項。所以你必須把最具體的比賽放在最上面。您還可以添加一個方法屬性來限制匹配到特定的HTTP方法(GET,POST,PUT等)。如果請求匹配多個模式,則無論排序如何,方法特定的匹配都將優先。

here

相關問題