gpt4 book ai didi

security - Symfony2 安全.yml

转载 作者:行者123 更新时间:2023-12-02 06:28:56 25 4
gpt4 key购买 nike

我正在尝试利用 Symfony 的身份验证和授权功能,但是我对我的 security.yml 文件应该是什么样子有些困惑。

我希望实现以下目标:

1) 路线/和/join (每个人都可以使用 - 无需登录)。

2) 所有其他路线都需要登录名/密码。

3)/adimin 路由应进一步仅限于管理员用户。

4) 所有用户都应根据数据库进行身份验证。

我已经弄清楚了第 4 项(我认为) - 见下文。但我不确定 administrators: 这个词的含义。这是否意味着只有管理员才使用 User 类?应该说users: 还是其他什么?

security:
encoders:
MySite\Bundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 1

providers:
administrators: (??? what doest his mean ???)
entity: { class: MySiteBundle:User }

更重要的是——

对于第 1、2 和 3 项,我不知道该放什么。我在 firewalls: 部分和 access_control: 部分下有一堆条目,但是它不起作用或没有意义。有人可以根据我希望在数字 1 - 3 中实现的目标发布 security.yml 应该是什么样子吗?

最佳答案

以下是我根据您的需求了解的配置示例:

security:
encoders:
"MySite\Bundle\Entity\User": { algorithm: sha1, encode_as_base64: false, iterations: 1 }

providers:
database: { entity: "MySite\Bundle\Entity\User" }

firewalls:
dev:
pattern: ^/(_profiler|_wdt|css|js)
security: false

main:
pattern: ^/
provider: database
anonymous: true
# the rest of your firewall's config

access_control:
- { path: ^/(join)?$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }

我们为用户实体配置密码编码器,并为其定义一个提供程序。

然后,我们定义一个 dev 防火墙来停用调试/分析器/ Assets 路径的安全性,以及一个 main 防火墙,它将成为应用程序的真正防火墙。最后一个防火墙将使用先前定义的用户提供程序并允许匿名用户(重要!)。

最后,在访问控制映射中,我们首先为允许匿名用户的路径定义一条规则,然后定义一条通用规则,要求用户在网站的其余部分进行完全身份验证。

关于security - Symfony2 安全.yml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085432/

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