Подтвердить что ты не робот

Разрешены несколько ролей в аннотации @Secured с помощью Spring Безопасность

Я хотел бы разрешить доступ к определенному методу нескольким группам пользователей. Возможно ли в Spring безопасности 3.x делать такую ​​вещь, используя аннотацию @Secured? Рассмотрим две группы (роли) OPERATOR и USER, будет ли этот код действителен:


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

Ответ 1

Ты почти там. Синтаксически вам нужно написать это следующим образом:

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

Это связано с тем, что вы передаете несколько значений одному атрибуту массива аннотации. (Java синтаксически специальные случаи, передающие одно значение, но теперь вам нужно сделать это "правильно".)

Ответ 2

Ответ

@Donal Fellows правильный для приложений Spring. Однако, если вы работаете в Grails, вам нужно использовать синтаксис Groovy для списков, чтобы код выглядел следующим образом:

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