Security symfony2使用多个防火墙
我想使用两种不同的防火墙,一种用于常规网站访问,另一种用于api:例如,当调用/anything时。。。常规防火墙应该采取行动,但在调用/api时。。。我不想使用其他防火墙,它通过检查请求授权头并从数据库中获取用户来验证用户。 我找到了我想要的:但我想使用多个防火墙。我从示例Authenticator类和UserProvider类复制了代码,并将它们注册为服务,然后在my security.yml中:Security symfony2使用多个防火墙,security,symfony,Security,Symfony,我想使用两种不同的防火墙,一种用于常规网站访问,另一种用于api:例如,当调用/anything时。。。常规防火墙应该采取行动,但在调用/api时。。。我不想使用其他防火墙,它通过检查请求授权头并从数据库中获取用户来验证用户。 我找到了我想要的:但我想使用多个防火墙。我从示例Authenticator类和UserProvider类复制了代码,并将它们注册为服务,然后在my security.yml中: providers: client_control: entity:
providers:
client_control:
entity: { class: AppBundle:Users }
api_key_user_provider:
id: api_key_user_provider
firewalls:
api:
pattern: ^/api
stateless: true
simple_preauth:
authenticator: apikey_authenticator
secured_area:
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
pattern: ^/
anonymous: ~
form_login:
provider: chain_provider
csrf_provider: form.csrf_provider
login_path: login
check_path: login_check
logout: ~
遗憾的是,这不起作用,当我试图在/api url下访问路由器时,我被重定向到登录表单。我做错了什么,我能用这种方式实现我想要的吗?我发现了问题的根源,我的应用程序是多语言的,所以我在编写url模式时就考虑了地区设置
#api firewall
pattern: ^/(lt|en)/api
#secured_area firewall
pattern: ^/(lt|en)
现在它可以工作并重定向到正确的身份验证机制您可以发布访问控制部分吗?