【问题标题】:Symfony 2 problems reading security.yml valuesSymfony 2 读取 security.yml 值的问题
【发布时间】:2015-02-28 17:19:55
【问题描述】:

我需要从应用程序内部读取security.yml文件的一个参数的值。

我尝试了以下方法来获取所有参数的列表

$parameters=$this->container->getParameterBag()->all();

这给了我一个有趣的参数列表,但我没有看到与 security.yml 相关的参数(尽管 security.yml 已正确导入到 config.yml 中)

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }

这里是security.yml。我想读取remember_me生命周期的值。

security:
encoders:
    FOS\UserBundle\Model\UserInterface: sha512

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern: ^/
        form_login:
            check_path: /login_check
            login_path: /login
            always_use_default_target_path: false
            default_target_path: /main
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
        remember_me:
            key: '%secret%'
            lifetime: 60
            path: /
            domain: ~
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }

谢谢!

【问题讨论】:

  • 只有参数下的东西才会进入参数包。大多数配置选项都是在依赖注入配置下处理的,最终被注入到服务中。防火墙尤其复杂。你可以看看 SecurityBundle DependencyInjection 的东西,看看 remember_me 是否最终可以在某个地方访问。但最好的办法是添加自己的参数。

标签: symfony parameters yaml


【解决方案1】:

将 remember_me.lifetime 设为参数:

#parameters.yml
parameters:
    remember_me.lifetime: 60

在您的安全配置中,使用如下参数值:

#security.yml
security:
    firewalls:
         ....
         main:
             remember_me:
                 key: '%secret%'
                 lifetime: '%remember_me.lifetime%'

然后,您将能够从包中访问此参数或将其注入任何服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 2014-07-31
    • 2013-03-17
    • 1970-01-01
    相关资源
    最近更新 更多