Php symfony2 API身份验证和路由
我按照说明创建自定义身份验证提供程序: app/config/security:Php symfony2 API身份验证和路由,php,url-routing,symfony,firewall,Php,Url Routing,Symfony,Firewall,我按照说明创建自定义身份验证提供程序: app/config/security: firewalls: wsse_protection: pattern: ^/api/.* wsse: true main: pattern: ^/ form_login: provider: fos_userbundle logout: true anonymous:
firewalls:
wsse_protection:
pattern: ^/api/.*
wsse: true
main:
pattern: ^/
form_login:
provider: fos_userbundle
logout: true
anonymous: true
example_list:
pattern: /example/list
defaults: { ... }
现在,我在控制器中使用路由执行一些操作。e、 g:
带有listAction的示例控制器
路由:
firewalls:
wsse_protection:
pattern: ^/api/.*
wsse: true
main:
pattern: ^/
form_login:
provider: fos_userbundle
logout: true
anonymous: true
example_list:
pattern: /example/list
defaults: { ... }
我是否必须将所有路由复制到示例api列表?因为api/example/list不起作用(找不到/api/example/list的路由)。我认为来自防火墙的模式是所有已定义路由的前缀。防火墙不是前缀,而是与传入路由匹配的正则表达式。在这种情况下,任何以
/api
开头的内容都将与您的wsse_保护
防火墙相匹配,所有通过的内容都将与您的main
防火墙相匹配
要在/api/*下创建路由,必须单独定义路由。ok。谢谢同时,我在保护控制器方法方面遇到了一些问题。添加@Secure(roles=“ROLE\u ADMIN”)注释将导致重播attac。你知道如何解决这个问题,或者原因是什么吗?这与$this->get('security.context')->isgrated('ROLE\u ADMIN')或security.yml中ROLE\u ADMIN的访问控制相同。