我正在进入一个我基本上不负责任的旧代码库。如果我的知识存在差距,我会提前道歉。
我们有一个Symfony应用程序运行使用工作,但最近非常奇怪,有各种各样的错误。其中最重要的是我无法再使用security.yml中描述的凭据登录。
这是security.yml文件:
providers:
in_memory:
memory:
users:
admin:
password: DefinitelyTheRealPassword
roles: 'ROLE_ADMIN'
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
form_login:
login_path: login
check_path: login
# activate different ways to authenticate
# http_basic: ~
# http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate
# form_login: ~
# http://symfony.com/doc/current/cookbook/security/form_login_setup.html
access_control:
- { path: ^/refresh, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
当我尝试以" admin"登录时使用我们的security.yml文件中的实际密码(没有散列,纯文本等,没什么奇怪的),我只是得到消息"凭证无效。"
我们的安全控制器直接来自Symfony示例文档,所以我不知道它是否值得发布。
最奇怪的部分是之前工作,现在它没有。检查应用程序工作的旧提交也没有帮助。我注意到没有"用户"数据库中的表,但由于登录信息是in_memory,我认为这不重要。
如果有任何相似的内容,我很乐意发布更多代码。
答案 0 :(得分:0)
check_path中存在错误。试试这个:
main:
anonymous: true
form_login:
login_path: login
check_path: login_check
logout:
path: logout
target: login
并验证您的routing.yml
login_check:
path: /login_check