【问题标题】:How can I secure Spring controller methods for user roles?如何保护用户角色的 Spring 控制器方法?
【发布时间】:2011-10-15 05:02:32
【问题描述】:

我有 USERROLEUSER_ROLE 表和一堆 Spring 控制器...是否有一个 Spring 注释我可以添加到控制器方法中,以指定用户应该拥有的角色可以访问吗?

我猜这将是 Spring 安全性?是否可以直接连接到现有的用户/角色架构?

我正在使用 Spring 2.5.4。

【问题讨论】:

    标签: java security spring spring-security roles


    【解决方案1】:

    Spring Security 将是您最简单的方法。你具体要求的是Method Security Expressions。您可以通过以下方式实现此目的:

    @PreAuthorize("hasRole('ROLE_ADMIN')")
    public void deleteUser(User user) {
      ...
    }
    

    使用数据库后端设置 Spring Security 非常简单。我会以DAOAuthenticationProvider 为起点。

    【讨论】:

    • 谢谢,我忘了说 - 我们在 Spring 2.5.4
    • 在这种情况下,您可能会滚动自己的注释并使用 AOP 对您想要保护的每个方法执行查找。
    【解决方案2】:

    Spring Security注解,如下:

    @Secured({"ROLE_1", "ROLE_2"})
    public String mySecuredHander() {
       return "foo";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 2020-04-11
      • 2015-01-31
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多