Symfony2:匿名访问路径

时间:2013-08-24 15:15:48

标签: authentication symfony anonymous

我使用带有mopa / wsse-authentication-bundle的FOSRestbundle(WSSE身份验证)。

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

我希望公开的路径:^ / 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)

1 个答案:

答案 0 :(得分:0)

如果你想让没有任何身份验证的人都可以访问api / users / page public,你可以考虑不使用WSSE身份验证。为此,您可以指定不应用WSSE身份验证的URL模式。例如在下面的示例中,我指定了一个模式来跳过格式为“api / users /".

的URL

简而言之,我建议使用“模式”

跳过“用户”页面的WSS​​E身份验证
wsse_secured:
            pattern:   ^/api/[^users].*
            wsse:
                 nonce_dir: null
                 lifetime: 300
                 provider: ***_users