symfony2从身份验证中跳过URL

时间:2014-12-10 13:47:52

标签: php regex symfony wsse

我正在使用symfony2开发API,并且我已经实现了WSSE身份验证。我需要跳过一些URL的身份验证,因为它们可以公开访问。可公开访问的URL的格式如下:

www.myserver.com/api/v1/public/testaction1
www.myserver.com/api/v1/public/testaction2

还有一个可公开访问的URL,它是API的文档:

www.myserver.com/api/doc/

除上述网址外,所有其他操作均应采用认证方案, 我尝试在防火墙配置选项下调整URL模式:

security.yml

 firewalls:
        wsse_secured:
            pattern:   ^/api/[^doc | ^v1\/public/].*

似乎无法正常工作,请您帮助我从身份验证中跳过这些网址吗?我错过了正确的正则表达式吗?

修改

这是我的security.yml的访问控制部分

access_control:
        - {path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY}

1 个答案:

答案 0 :(得分:3)

您需要为匿名访问添加特定防火墙:

firewalls:
  api:
    pattern: ^/api
  doc:
    pattern: ^/api/doc
    security: false
  public:
    pattern: ^/api/public
    security: false

另一种选择是允许匿名用户访问这两个防火墙,但我不知道它是否适用于远程卷曲调用,例如。