2017-03-15 132 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

相关问题