2017-03-15 47 views
0

這是一個使用symfony 2.4.2製作的網站,它有一個頁面(下載)受到限制,您需要用戶名和密碼才能訪問它。Symfony2.4.2限制對特定頁面的訪問

事情是,當天他們想要不同的語言不同的網址,不僅改變語言環境,而且還改變「slu」「。

因此,如果您像普通人一樣訪問並通過單擊該按鈕訪問該頁面,則會詢問用戶和密碼,但是如果您使用其他支持的語言中的語言環境支持的語言之一輸入網址它讓你通過時不會問你訪問權限。

這是我的routing.yml:

 frontend_descarregues_ca: 
     path: /descarregues.html 
     defaults: {_controller: FrontendBundle:Default:descarregues, _locale: ca } 

    frontend_descarregues_es: 
     path: /descargas.html 
     defaults: { _controller: FrontendBundle:Default:descarregues, _locale: es } 

    frontend_descarregues_fr: 
     path: /telechargements.html 
     defaults: { _controller: FrontendBundle:Default:descarregues, _locale: fr } 

這個我security.yml:

security: 
     firewalls: 
      dev: 
       pattern: ^/(_(profiler|wdt)|css|images|js)/ 
       security: false 
     default: 
      pattern:  ^/ca/descarregues.html 
      provider:  in_memory 
      http_basic: ~ 
      anonymous:  ~ 
     default_fr: 
      pattern:  ^/fr/telechargements.html 
      provider:  in_memory 
      http_basic: ~ 
      anonymous:  ~ 
     default_es: 
      pattern:  ^/es/descargas.html 
      provider:  in_memory 
      http_basic: ~ 
      anonymous:  ~ 

     access_control: 
      - { path: ^/ca/descarregues.html, roles: ROLE_DOWN } 
      - { path: ^/es/descargas.html, roles: ROLE_DOWN } 
      - { path: ^/fr/telechargements.html, roles: ROLE_DOWN } 

     providers: 
      in_memory: 
       memory: 
        users: 
         someuser: 
          password: somepassword 
          roles: 'ROLE_DOWN' 

我再說一遍,這是symfony的2.4.2

我嘗試使用要求只允許具有指定「slug」的語言環境有效並進入頁面,但這樣做的確發生了,它不會問我訪問權限。

有沒有人知道我該如何解決這個問題? (正如一個提醒,這是symfony的2.4.2)

回答

0

試試這個:

security: 
    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
    default: 
     pattern:  ^/[a-zA-Z]+/descarregues.html 
     provider:  in_memory 
     http_basic: ~ 
     anonymous:  ~ 
    default_fr: 
     pattern:  ^/[a-zA-Z]+/telechargements.html 
     provider:  in_memory 
     http_basic: ~ 
     anonymous:  ~ 
    default_es: 
     pattern:  ^/[a-zA-Z]+/descargas.html 
     provider:  in_memory 
     http_basic: ~ 
     anonymous:  ~ 

    access_control: 
     - { path: ^/[a-zA-Z]+/descarregues.html, roles: ROLE_DOWN } 
     - { path: ^/[a-zA-Z]+/descargas.html, roles: ROLE_DOWN } 
     - { path: ^/[a-zA-Z]+/telechargements.html, roles: ROLE_DOWN } 

    providers: 
     in_memory: 
      memory: 
       users: 
        someuser: 
         password: somepassword 
         roles: 'ROLE_DOWN' 
+0

這是它,謝謝。這個問題困擾了我6個小時。只是爲了完成一點,這工作得益於我在防火牆中也使用了這個正則表達式。 – iscato