2013-05-03 83 views
1

我需要幫助來配置我的symfony網站的訪問控制部分。 我想對大家的訪問:訪問控制正則表達式symfony 2

/ : the homepage 
/login : the login page 
/login_check : the check login page for FOSUserBundle 
/register : the register page of FOSUserBundle 
/resetting/request : the resetting password page of FOSUserBundle 

而且我要認證的所有其餘部分的用戶,例如:/ ABC,/ XXX,/ YY/XX ...等

我把這security.yml,但它不工作時,用戶可以完全訪問所有的一切情況:

access_control:  
     - { path: /_wdt/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /_profiler/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /login_check, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /resetting/request, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /*, role: IS_AUTHENTICATED_FULLY } 

什麼問題?

感謝;)

+0

的問題是,你錯過了一個週期 – 2013-05-03 11:31:58

回答

0

的問題是,你少在最後一行一段:

 - { path: /*, role: IS_AUTHENTICATED_FULLY } 
       ^^^^^ 

/*意味着零個或多個斜槓(/)..。應當/.*到表明什麼其次

正確的入口應該是這樣的一個斜線:

 - { path: /.*, role: IS_AUTHENTICATED_FULLY } 
+0

是的,我糾正,但主要的問題是我需要把之前: - {路徑:^/$ ,角色:IS_AUTHENTICATED_ANONYMOUSLY} – user2178964 2013-05-03 11:43:27

+0

那麼它對你有用嗎? – 2013-05-03 11:47:46

+0

ACL「正則表達式」要簡單得多。沒有星號和東西。 – 2013-05-03 18:27:42

3

奇怪的使用acls。 acl正則表達式要簡單得多。 ^標誌着url的開始。 $表示匹配網址的結束。如果不存在$,則在「正則表達式」匹配後。根本沒有星號。哦,login_check應確保

access_control: 
    - { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: IS_AUTHENTICATED_FULLY }