代码之家  ›  专栏  ›  技术社区  ›  Whimusical

将应用程序属性中的角色列表插入@preauthorize

  •  0
  • Whimusical  · 技术社区  · 7 年前

    对于spel有什么技巧吗?这样我就可以在application.yml中定义我的管理角色,然后直接将它们加载到如下内容中:

    @PreAuthorize("hasAnyRole(${my.security.admin-roles-list})")
    

    ……?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Mạnh Quyết Nguyễn    7 年前

    您可以使用trick从@preauthorize annotation访问bean:

    application.properties
    
    my.security.admin-roles-list=RoleA,RoleB,RoleC
    
    @Component("securityConfiguration")
    public class SecurityConfiguration {
    
        @Value("#{'${my.security.admin-roles-list}'.split(',')}") 
        private List<String> adminRoles;
    
        public List<String> getAdminRoles() {
            return adminRoles;
        }
    }
    

    然后使用它:

    @PreAuthorize("hasAnyRole(@securityConfiguration.getAdminRoles())")
    
    推荐文章