【问题标题】:Are multiple roles allowed in the @Secured annotation with Spring Security使用 Spring Security 的 @Secured 注释中是否允许多个角色
【发布时间】:2011-12-16 14:49:53
【问题描述】:

我想允许多个用户组访问特定方法。在 Spring Security 3.x 中是否可以使用 @Secured 注释来做这样的事情?考虑两组(角色)操作员和用户,此代码是否有效:

    @Secured("ROLE_OPERATOR", "ROLE_USER")
    public void doWork() {
        // do useful processing
    }

【问题讨论】:

    标签: java spring-security


    【解决方案1】:

    你快到了。从语法上讲,你需要这样写:

    @Secured({"ROLE_OPERATOR", "ROLE_USER"})
    public void doWork() { ... }
    

    这是因为您为注解的单个数组属性提供了多个值。 (Java 在语法上是处理单个值的特殊情况,但现在您需要“正确地”这样做。)

    【讨论】:

    • ... 具体来说,这是一个(包括)OR,对吧?如果您是 ROLE_OPERATOR、 ROLE_USER、两者,您将获得授权。这不是AND
    【解决方案2】:

    @Donal Fellows 的回答对于 Spring 应用程序是正确的。但是,如果您在 Grails 中工作,则需要对列表使用 Groovy 语法,以便代码如下所示

    @Secured(["ROLE_OPERATOR", "ROLE_USER"])
    public void doWork() { ... }
    

    【讨论】:

    • 人真棒
    猜你喜欢
    • 2016-08-21
    • 2021-09-27
    • 2017-05-28
    • 2016-08-11
    • 2015-05-30
    • 2016-01-03
    • 1970-01-01
    • 2017-05-18
    • 2015-09-20
    相关资源
    最近更新 更多