gpt4 book ai didi

php - Symfony 2 - 防火墙和访问控制问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:57 25 4
gpt4 key购买 nike

我遇到了 symfony 2 安全组件的连线问题。由于 {{ app.user }} 对象仅在安全区域内可用,我将防火墙模式设置为 ^/。现在我想“不安全”一些页面,比如注册。我已使用 access_control 尝试过此操作,但它不起作用。

这是我的security.yml

firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false

login:
pattern: ^/account/login$
security: false

account_area:
pattern: ^/
form_login:
check_path: /account/login_check
login_path: /account/login
default_target_path: /account
remember_me:
key: blaBlubKey
lifetime: 3600
path: /
domain: ~
logout:
path: /account/logout
target: /

access_control:
#works
- { path: ^/backend, roles: ROLE_USER }
#works not
- { path: ^/registration, roles: IS_AUTHENTICATED_ANONYMOUSLY }

提前致谢!

最佳答案

值得一提的是,这里的最佳实践是只使用一个带有 access_control 的防火墙用于登录页面。为什么?如果登录用户试图访问/login 页面,您会怎么做?如果他通过身份验证并重定向他,您将无法 checkin Controller ,因为用户将通过您的主防火墙的身份验证,但不会通过登录防火墙的身份验证,因为它们是独立的安全系统。

这是对我非常有用的 security.yml:

security:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: true
anonymous: ~
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
always_use_default_target_path: true
default_target_path: /
logout:
path: /logout
target: /
providers:
main:
entity: { class: Core\UserBundle\Entity\User, property: username }
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_SUPERADMIN }
- { path: ^/user, roles: ROLE_USER }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }

关于php - Symfony 2 - 防火墙和访问控制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9649527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com