这是一个使用symfony 2.4.2制作的网站,它有一个页面(下载)受限制,你需要一个用户和密码才能访问它。
事情是,当天他们想要不同语言的不同网址,不仅要更改区域设置,还要更改" slug"。
因此,如果您像普通人一样通过点击按钮访问该页面,它会询问您的用户名和密码,但是,如果您使用其他受支持语言的语言环境支持其中一种受支持语言的URL,让你通过而不要求你访问。
这是我的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 :(得分: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'