3
我有一個Symfony2應用程序,用於從in_memory
用戶提供商加載用戶。該security.yml
如下:Symfony2 in_memory用戶提供商問題
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 Pro的書),此配置按預期工作。當我去_/send_
或_/subscription/show_
的路線時,Symfony要我登錄,如果我輸入憑證admin和mypassword我可以正確查看頁面。
但在生產環境(Debian服務器)我必須執行登錄才能看到該路線,但相同的用戶名和密碼不起作用! HTTP基本認證登錄提示永遠不會消失!我無法理解。
爲什麼該配置不起作用?總體而言,爲什麼在我的本地環境中它可以正常工作,而在生產環境中卻不行?
我也看到一個問題,我想它是有關:Symfony2 plaintext users don't work。 我已經嘗試過列出的所有建議,但其中任何一個都可以解決問題。