具有匿名用户的自定义身份验证提供程序
custom authentication provider with anonymous user
我有一个问题我没有真正找到答案。
我必须维护一个使用自定义身份验证和用户提供程序的 Symfony 应用程序。提供者按方面工作,用户可以正确登录。
但是,我需要为匿名用户提供一些可访问的路由。当用户未完全通过身份验证时,它们也应该是可访问的。
所以我尝试调整 security.yml 中的 access_control 配置以使这些 URL 可访问:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ~
anonymous: ~
internal_api:
provider: fos_userbundle
check_path: /api/user/login
logout:
path: /api/user/logout
access_control:
- { path: ^/api/init, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/resources, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
不幸的是,这不起作用。用户仍然不能访问这些路由,只要他们没有完全认证。
所以我的问题是:通过自定义身份验证提供程序提供角色 IS_AUTHENTICATED_ANONYMOUSLY 需要什么?可以完成还是我只需要调整我的 security.yml 设置?
此致
因为您希望匿名访问的路由在您的 main
防火墙后面并受到 path: ^/
access_control 的保护,您必须为它们创建一个特定的防火墙。
将此添加到您的 security.yml 的 firewalls
中:
api_resources:
pattern: ^/api/resources
anonymous: ~
api_init:
pattern: ^/api/init
anonymous: ~
它应该有效。
我有一个问题我没有真正找到答案。
我必须维护一个使用自定义身份验证和用户提供程序的 Symfony 应用程序。提供者按方面工作,用户可以正确登录。
但是,我需要为匿名用户提供一些可访问的路由。当用户未完全通过身份验证时,它们也应该是可访问的。 所以我尝试调整 security.yml 中的 access_control 配置以使这些 URL 可访问:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ~
anonymous: ~
internal_api:
provider: fos_userbundle
check_path: /api/user/login
logout:
path: /api/user/logout
access_control:
- { path: ^/api/init, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/resources, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
不幸的是,这不起作用。用户仍然不能访问这些路由,只要他们没有完全认证。
所以我的问题是:通过自定义身份验证提供程序提供角色 IS_AUTHENTICATED_ANONYMOUSLY 需要什么?可以完成还是我只需要调整我的 security.yml 设置?
此致
因为您希望匿名访问的路由在您的 main
防火墙后面并受到 path: ^/
access_control 的保护,您必须为它们创建一个特定的防火墙。
将此添加到您的 security.yml 的 firewalls
中:
api_resources:
pattern: ^/api/resources
anonymous: ~
api_init:
pattern: ^/api/init
anonymous: ~
它应该有效。