Я хотел бы разрешить доступ к определенному методу более чем одной группе пользователей. Возможно ли в Spring Security 3.x сделать это с помощью аннотации @Secured? Рассмотрим две группы (роли) ОПЕРАТОР и ПОЛЬЗОВАТЕЛЬ, будет ли этот код действительным:
@Secured("ROLE_OPERATOR", "ROLE_USER")
public void doWork() {
// do useful processing
}
Разрешены ли несколько ролей в аннотации @Secured с помощью Spring Security
Ответы (2)
Ты почти там. Синтаксически вам нужно написать это так:
@Secured({"ROLE_OPERATOR", "ROLE_USER"})
public void doWork() { ... }
Это связано с тем, что вы предоставляете несколько значений одному атрибуту массива аннотации. (Java в синтаксических особых случаях передает одно значение, но теперь вам нужно сделать это «правильно».)
person
Donal Fellows
schedule
27.10.2011
... и, если быть точным, это (включительно)
OR, верно? Вы будете авторизованы, если вы являетесь ROLE_OPERATOR, или ROLE_USER, или обоими. Это не AND.
- person SusanW; 11.04.2017
Ответ @Donal Fellows верен для приложений Spring. Однако, если вы работаете в Grails, вам нужно использовать синтаксис Groovy для списков, чтобы код выглядел так:
@Secured(["ROLE_OPERATOR", "ROLE_USER"])
public void doWork() { ... }
person
10GritSandpaper
schedule
25.07.2013
Люди потрясающие
- person AVI; 05.02.2021