gpt4 book ai didi

security - Symfony 2 - 使用 HTTP 身份验证对话框隐藏整个网站

转载 作者:行者123 更新时间:2023-12-04 20:17:27 24 4
gpt4 key购买 nike

我正在使用 Symfony 2 来构建网站。

工作正在进行中(因此我不希望用户或搜索引擎访问它)但我的客户希望看到我的进展。我在想一个简单的解决方案是使用 Symfony 2 安全功能提供的机制通过 HTTP 身份验证保护整个网站。

我正在使用 FOSUserBundle,因为该网站将有需要注册和登录的用户。

这是我的 security.yml,效果很好:

security:
providers:
fos_userbundle:
id: fos_user.user_manager

encoders:
"FOS\UserBundle\Model\UserInterface": sha512

firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true

access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/account, role: IS_AUTHENTICATED_FULLY }

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN

因此,我试图在其上添加其他内容,以允许网站受到 HTTP 身份验证的保护。
我将文件更改为:
security:
providers:
fos_userbundle:
id: fos_user.user_manager
whole_website_provider:
users:
ryan: { password: ryanpass, roles: 'ROLE_USER' }

encoders:
"FOS\UserBundle\Model\UserInterface": sha512

firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
whole_website:
pattern: ^/
anonymous: ~
http_basic:
realm: "Secured Demo Area"

access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/account, role: IS_AUTHENTICATED_FULLY }
- { path: ^/, role: ROLE_USER }

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN

基本上我添加了 whole_website_provider提供商, whole_website防火墙和额外的 access_control .
但这不起作用:当我访问网站时,我被重定向到登录表单,就是这样。

你知道我是否能做到以及如何做到吗?

N.B.:我不想为它使用任何 Apache 功能。

最佳答案

在我看来,您需要的不是使用 HTTP 身份验证管理用户,而是使用 HTTP 身份验证限制对您站点的访问。不要为此使用 Symfony2 安全性。

保持 symfony2 应用程序的安全性,因为它将处于生产模式并使用 apache .htaccess 来限制对站点的访问。

文档在这里 http://httpd.apache.org/docs/2.2/howto/auth.html .您只需要在 web/.htaccess 中添加一些指令,并按照文档中的说明创建一个用户/密码文件...

关于security - Symfony 2 - 使用 HTTP 身份验证对话框隐藏整个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481651/

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