[英]Symfony security.yml Unrecognized options “check_path, login_path, provider” under “security.firewalls.secured_area.ldapsecure”
更新我從來沒有弄清楚為什么下面的security.yml文件不起作用,但是我確實學習了一些方法,可能會在將來對某人有所幫助。 我不知道這是否100%准確,但是似乎login_path和check_path鍵不能與路由名稱一起使用,您需要使用實際路徑(例如/ login)。 另外,提供者密鑰在yaml中應與模式和匿名者處於同一級別,而不是在ldapsecure下,如下所示。
嘗試使用Symfony 2.6配置自定義身份驗證提供程序時出現此錯誤。
Unrecognized options "check_path, login_path, provider" under "security.firewalls.secured_area.ldapsecure"
這是我的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:
ldap_provider:
id: ldap.security.user.provider
firewalls:
login_firewall:
pattern: ^/app/login$
anonymous: ~
secured_area:
pattern: ^/
ldapsecure:
check_path: app_security_login_check
login_path: app_security_login_path
provider: ldap_provider
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
access_control:
- { path: ^/app/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
ldapsecure“工廠”類存在,並且如果我更改getKey()方法以返回其他人,則它會以不同的方式中斷,因此可以識別ldapsecure。 但是我看不到為什么它不接受check_path,login_path或提供程序。 如果我將ldapsecure更改為form_login,則不會收到錯誤消息,它只是不使用我的身份驗證提供程序。
因此,我覺得自己缺少了一些東西,但不知道從哪里着手。
在您的ldapsecure
工廠中,將addConfiguration
方法的主體更改為以下內容:
public function addConfiguration(NodeDefinition $node)
{
$node
->children()
->scalarNode('check_path')
->isRequired()
->end()
->scalarNode('login_path')
->isRequired()
->end()
->scalarNode('provider')
->isRequired()
->end()
->end();
}
這應該使它工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.