2013-05-22 86 views
3

我正在嘗試爲項目使用Spring Security v3.2。目前我總是使用一個調用其他文件的coldfusion文件來構建視圖。所以我所有的網址都會通過index.cfm?blablah春季安全3攔截網址模式索引

現在我堅持讓匿名用戶進入主視圖。在Spring Security request matcher is not working with regex之後,我編了這段代碼:

<http use-expressions="true"> 
    <intercept-url pattern="^.*index.cfm\?action=home.*$" access="permitAll" /> 
    <intercept-url pattern="/root/index.cfm" access="isAuthenticated()" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
</http> 

但無論我嘗試什麼,我總是進入登錄字段。

+1

這是正常的,你說的規則始終輸入登錄領域。看看你最後的規則。你有沒有攔截網址測試你的正則表達式?我想,爲什麼不這樣,例如:'' –

+0

剛發現我自己後纔看到您的答案。但是你還需要一個請求匹配器屬性,因爲請求匹配器是默認的'ant'。 –

回答

8

經過艱難我發現了一個解決方案:

<http request-matcher="regex" pattern="^.*index.cfm\?action=home.*$" security="none"/> 

<http use-expressions="true"> 
    <intercept-url pattern="/root/index.cfm" access="isAuthenticated()" /> 
    <intercept-url pattern="/root/**" access="permitAll" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
</http>