【问题标题】:Secure Controller's methods using xml instead of annotations in Symfony 2在 Symfony 2 中使用 xml 而不是注解来保护控制器的方法
【发布时间】:2012-01-29 12:37:54
【问题描述】:

我现在正在开发一个捆绑包,最终我想作为第三方捆绑包分发。在这个捆绑包中,我有控制器需要保护哪些方法,例如登录用户等。

我找到了two methods 来保护这些路由,一个是注释,另一个是手动检查文件控制器逻辑本身。我认为这两种方法都没有解耦,我认为如果开发人员自定义角色,则要求编辑文件以更改角色是不好的。

我想将此配置移出到一个 xml 文件,但我没有找到任何文档或示例来执行此操作。

如果目前不可行,您会建议如何强制安全路由但仍可轻松编辑和更新?

【问题讨论】:

    标签: xml security annotations symfony


    【解决方案1】:

    JMSSecurityExtraBundle(处理方法访问控制的包)可以通过注解或(在主分支中)通过在 config.yml/config.xml 中向包的配置中添加表达式来配​​置:

    jms_security_extra:
        method_access_control:
            "ProductManager::bulkDelete$": "hasRole('ROLE_ADMIN')"
    

    如果您想使用这种技术来保护控制器,您还需要安装 JMSDiExtraBundle。

    【讨论】:

      【解决方案2】:

      这个注释是由JMSSecurityExtraBundle 提供的。您可以查看其documentation 以找到答案(在配置和方法安全授权段落下)。

      附:快速说明:任何将使用您的包的开发都不需要(也不应该)编辑实际包代码中的任何内容,无论您决定如何配置它,它们都会扩展您的包并配置扩展名(查看FOSUserBundle如何配置以供参考)

      附:大声笑,与克里斯同时回答基本相同:D

      【讨论】:

        猜你喜欢
        • 2016-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-28
        • 2020-09-03
        • 2015-01-16
        • 2012-10-05
        • 2012-11-25
        相关资源
        最近更新 更多