gpt4 book ai didi

security - Symfony2 in_memory 用户提供程序问题

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

我有一个 Symfony2 应用程序,它从 in_memory 加载用户用户提供者。 security.yml如下:

security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
in_memory:
users:
admin: { password: mypassword, roles: [ 'ROLE_ADMIN' ] }

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

login:
pattern: ^/demo/secured/login$
security: false

secured_area:
pattern: ^/
anonymous: ~
http_basic:
realm: "MyApp Realm - Login"

access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
#- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
- { path: ^/subscription/show, roles: ROLE_ADMIN }
- { path: ^/send, roles: ROLE_ADMIN }

在我的本地开发环境(Mac Book Pro)中,此配置按预期工作。当我去路线 _/send__/subscription/show_ , Symfony 要求我登录,如果我输入凭据 admin 和 mypassword,我可以正确查看页面。

但是在生产环境(Debian 服务器)中,我必须执行登录才能查看路由,但相同的用户名和密码不起作用! HTTP 基本身份验证登录提示永远不会消失!我无法理解。

为什么那个配置不起作用?总的来说,为什么在我的本地环境中它可以工作,而在生产环境中却没有?

我还看到一个我认为与此相关的问题: Symfony2 plaintext users don't work .
我已经尝试了那里列出的所有建议,但其中任何一个都可以解决问题。

最佳答案

解决了!

问题是生产环境在 FastCGI 中运行 PHP,使用这样的配置,您必须将以下行添加到 .htaccess,以便通过 PHP 进行 http 基本身份验证:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

再见!

关于security - Symfony2 in_memory 用户提供程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530684/

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