php - symfony2 从身份验证中跳过 url

标签 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 外,所有其他操作都应在身份验证方案下, 我尝试将防火墙配置选项下的 URL 模式调整为:

安全.yml

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

这似乎不起作用,你能帮我从身份验证中跳过这些 URL 吗?我是否缺少正确的正则表达式?

编辑

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

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

最佳答案

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

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

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

关于php - symfony2 从身份验证中跳过 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402640/

相关文章:

regex - URL中作为参数传递的特殊字符

单引号之间的 Java 正则表达式内容

php - 如何使这棵树生成更快(doctrine2+扩展)?

php - 'Acme' 在 Symfony2 中代表什么?

symfony - 允许 Symfony2 路由的尾部斜杠不带参数吗?

php - 处理大型 (UUID) 作为 MySQL 表主键的最佳方法

php - 如何在 MVC 框架中有效地实现模块,并在单个模块中处理到多个 Controller 的路由?

php - 我如何分析为什么gettext不起作用?

php - 如何对 CSV 文件中的数据进行数学运算?

java - 使用正则表达式在特殊条件下进行名称验证