Вставить список ролей из свойств приложения в @PreAuthorize - PullRequest
0 голосов
/ 24 мая 2018

Есть ли хитрость для SPEL, чтобы я мог определить свои роли администратора в application.yml, а затем загрузить их прямо в нечто вроде:

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

...?

1 Ответ

0 голосов
/ 03 августа 2018

Вы можете использовать трюк для доступа к компоненту из аннотации @PreAuthorize:

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())")
...