簡體   English   中英

Symfony security.yml在“ security.firewalls.secured_area.ldapsecure”下無法識別的選項“ check_path,login_path,提供程序”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM