Разрешены несколько ролей в аннотации @Secured с помощью Spring Безопасность
Я хотел бы разрешить доступ к определенному методу нескольким группам пользователей. Возможно ли в Spring безопасности 3.x делать такую вещь, используя аннотацию @Secured? Рассмотрим две группы (роли) OPERATOR и USER, будет ли этот код действителен:
@Secured("ROLE_OPERATOR", "ROLE_USER")
public void doWork() {
// do useful processing
}
Ответы
Ответ 1
Ты почти там. Синтаксически вам нужно написать это следующим образом:
@Secured({"ROLE_OPERATOR", "ROLE_USER"})
public void doWork() { ... }
Это связано с тем, что вы передаете несколько значений одному атрибуту массива аннотации. (Java синтаксически специальные случаи, передающие одно значение, но теперь вам нужно сделать это "правильно".)
Ответ 2
Ответ @Donal Fellows правильный для приложений Spring. Однако, если вы работаете в Grails, вам нужно использовать синтаксис Groovy для списков, чтобы код выглядел следующим образом:
@Secured(["ROLE_OPERATOR", "ROLE_USER"])
public void doWork() { ... }