我使用带有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)
答案 0 :(得分:0)
如果你想让没有任何身份验证的人都可以访问api / users / page public,你可以考虑不使用WSSE身份验证。为此,您可以指定不应用WSSE身份验证的URL模式。例如在下面的示例中,我指定了一个模式来跳过格式为“api / users /".
的URL简而言之,我建议使用“模式”
跳过“用户”页面的WSSE身份验证wsse_secured:
pattern: ^/api/[^users].*
wsse:
nonce_dir: null
lifetime: 300
provider: ***_users