Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Paul GregoireОтветов: 2

Я хотел бы разрешить доступ к определенному методу более чем одной группе пользователей. Возможно ли в Spring Security 3.x сделать это с помощью аннотации @Secured? Рассмотрим две группы (роли) ОПЕРАТОР и ПОЛЬЗОВАТЕЛЬ, будет ли этот код действительным:

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

javaspring-security

Ответы

Ответ 1 · рейтинг 41 · Donal Fellows

Ты почти там. Синтаксически вам нужно написать это так:

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

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

Ответ 2 · рейтинг 20 · 10GritSandpaper

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы