首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony security.yml未被识别的选项"check_path,login_path,provider“在"security.firewalls.secured_area.ldapsecure”下

Symfony security.yml未被识别的选项"check_path,login_path,provider“在"security.firewalls.secured_area.ldapsecure”下
EN

Stack Overflow用户
提问于 2015-05-08 13:28:49
回答 1查看 1.3K关注 0票数 0

更新我从来不知道为什么下面的security.yml文件不工作,但我确实学到了一些东西,可能会帮助某人在未来。我不知道这是否100 %准确,但似乎login_path和check_path密钥不适用于路由名称,您需要使用实际的路径(例如/login)。而且,在yaml模式和匿名模式中,提供者密钥应该处于相同的级别,而不是在ldapsecure下,如下所示。

当我试图使用Symfony 2.6配置自定义身份验证提供程序时,会出现此错误。

代码语言:javascript
复制
Unrecognized options "check_path, login_path, provider" under "security.firewalls.secured_area.ldapsecure"

这是我的security.yml

代码语言:javascript
复制
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,我就不会得到错误,它只是没有使用我的身份验证提供程序。

所以我觉得我错过了什么,但不知道该从哪里看。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 21:29:29

ldapsecure工厂中,将addConfiguration方法的主体更改为:

代码语言:javascript
复制
public function addConfiguration(NodeDefinition $node)
{
    $node
        ->children()
            ->scalarNode('check_path')
                ->isRequired()
            ->end()
            ->scalarNode('login_path')
                ->isRequired()
            ->end()
            ->scalarNode('provider')
                ->isRequired()
            ->end()
        ->end();
    }

这应该能让它发挥作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30125083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档