繁体   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