如何从 SonataAdmin 验证器连接到其他验证器?
How to connect from SonataAdmin authenticator to other authenticator?
我有一个 symfony 应用程序,它在管理部分的 Sonata Admin Bundle 中有它自己的防火墙 (admin
) 和应用程序的用户部分的防火墙 (main
) .
目前,与 sonata 连接的管理员无法访问为用户设计的 API,因为它已针对 Sonata Admin Bundle 身份验证器和 API 进行身份验证它将他视为空用户或未经过身份验证的用户。
我想允许管理员访问 API 为用户部分的防火墙后面的应用程序部分制作的。
security.yaml
文件中的防火墙配置:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/admin(.*)
form_login:
provider: app_user_admin
login_path: admin_login
use_forward: false
check_path: admin_login
failure_path: null
logout:
path: admin_logout
target: admin_login
anonymous: true
guard:
authenticators:
- App\Security\AdminLoginAuthenticator
main:
anonymous: true
logout:
path: security_logout
guard:
authenticators:
- App\Security\UserLoginAuthenticator
有没有办法为管理员连接两个验证器?例如,在管理员成功登录后调用 main
防火墙的身份验证器?
经过一些挖掘和一些帮助,我发现 symfony 安全性内置了类似的东西。
它叫做 Symfony context 并且做的事情完全一样。
为了将来参考,这是您真正需要添加到配置文件中的内容:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
context: just_a_random_name
pattern: ^/admin(.*)
form_login:
provider: app_user_admin
login_path: admin_login
use_forward: false
check_path: admin_login
failure_path: null
logout:
path: admin_logout
target: admin_login
anonymous: true
guard:
authenticators:
- App\Security\AdminLoginAuthenticator
main:
context: just_a_random_name
anonymous: true
logout:
path: security_logout
guard:
authenticators:
- App\Security\UserLoginAuthenticator
我有一个 symfony 应用程序,它在管理部分的 Sonata Admin Bundle 中有它自己的防火墙 (admin
) 和应用程序的用户部分的防火墙 (main
) .
目前,与 sonata 连接的管理员无法访问为用户设计的 API,因为它已针对 Sonata Admin Bundle 身份验证器和 API 进行身份验证它将他视为空用户或未经过身份验证的用户。
我想允许管理员访问 API 为用户部分的防火墙后面的应用程序部分制作的。
security.yaml
文件中的防火墙配置:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/admin(.*)
form_login:
provider: app_user_admin
login_path: admin_login
use_forward: false
check_path: admin_login
failure_path: null
logout:
path: admin_logout
target: admin_login
anonymous: true
guard:
authenticators:
- App\Security\AdminLoginAuthenticator
main:
anonymous: true
logout:
path: security_logout
guard:
authenticators:
- App\Security\UserLoginAuthenticator
有没有办法为管理员连接两个验证器?例如,在管理员成功登录后调用 main
防火墙的身份验证器?
经过一些挖掘和一些帮助,我发现 symfony 安全性内置了类似的东西。
它叫做 Symfony context 并且做的事情完全一样。
为了将来参考,这是您真正需要添加到配置文件中的内容:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
context: just_a_random_name
pattern: ^/admin(.*)
form_login:
provider: app_user_admin
login_path: admin_login
use_forward: false
check_path: admin_login
failure_path: null
logout:
path: admin_logout
target: admin_login
anonymous: true
guard:
authenticators:
- App\Security\AdminLoginAuthenticator
main:
context: just_a_random_name
anonymous: true
logout:
path: security_logout
guard:
authenticators:
- App\Security\UserLoginAuthenticator