【问题标题】:Symfony2: Access anonymously pathSymfony2:匿名访问路径
【发布时间】:2013-08-24 15:15:48
【问题描述】:

我将 FOSRestbundle 与 mopa/wsse-authentication-bundle(WSSE 身份验证)一起使用。

一切正常(身份验证和 RESTful api)。 但我想公开 1 个特定路径(无需身份验证)。

我要公开的路径:^/api/users

我尝试了以下设置,但我仍然得到 api/users 路径的 403 Forbidden 状态。 (security.yml)

    jms_security_extra:
            secure_all_services: false
            expressions: true

    security:
            encoders:
                    ***\UserBundle\Entity\User: plaintext

            role_hierarchy:
                    ROLE_USER:        [ROLE_API_USER]

            providers:
                    ***_users:
                            entity: { class: UserBundle:User }

            firewalls:
                    wsse_secured:
                            pattern:   ^/api
                            anonymous: true
                            stateless:  true
                            wsse:
                                    nonce_dir: null
                                    lifetime: 300
                                    provider: ***_users

            access_control:
                    - { path: ^/api/users, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                    - { path: ^/(css|js), roles: IS_AUTHENTICATED_ANONYMOUSLY }
                    - { path: ^/(_wdt|_profiler)

【问题讨论】:

    标签: authentication symfony anonymous


    【解决方案1】:

    如果您希望公开 api/users/ 页面,无需任何身份验证即可供所有人访问,您可以考虑避开 WSSE 身份验证。为此,您可以指定不应用 WSSE 身份验证的 url 模式。例如在下面的示例中,我指定了一种模式来跳过具有“api/users/”形式的 URL。

    简而言之,我建议使用“模式”跳过“用户”页面的 WSSE 身份验证

    wsse_secured:
                pattern:   ^/api/[^users].*
                wsse:
                     nonce_dir: null
                     lifetime: 300
                     provider: ***_users
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多