Как я могу аннотировать метод в Spring Security, чтобы у вызывающего абонента была одна из ролей? - PullRequest
13 голосов
/ 05 сентября 2011

Я использую аннотацию в Java для предоставления разрешения на определенный метод. До сих пор у меня не было способа сделать мой метод доступным для нескольких ролей, одна роль прекрасно работает с @Secured («ROLE_CUSTOMER»). Есть ли способ сделать hasRole ('role1', 'role2')?

Ответы [ 4 ]

34 голосов
/ 06 сентября 2011

Я тоже нашел точное решение проблемы.

@PreAuthorize("hasAnyRole('ROLE_CUSTOMER','ROLE_OFFICEADMIN','ROLE_EMPLOYEE')") 

отлично работает!
Работает как шарм в коде Java.

10 голосов
/ 05 сентября 2011

Просто:

@Secured({"ROLE1", "ROLE2", "ROLE3"})
7 голосов
/ 05 сентября 2011

Чтобы это произошло, я часто использую это

импортируйте это в свой JSP

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

и знайте, что вы можете использовать это для обеспечения безопасности, как в случае, если taglib

<sec:authorize access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

Есть еще один, как этот, чтобы не допустить тех ... я думаю, что это HasNoRole

В любом случае это работает!

0 голосов
/ 08 июля 2014

Граница «Защищенная» аннотация отличается от аннотации «Защищенная» пружины.Grails принимает массив строк.Spring использует странный язык выражений безопасности.

так:

import org.springframework.security.access.annotation.Secured;
@Secured('hasAnyRole([\'FOO-ROLE\'])')

или:

import grails.plugins.springsecurity.Secured;
@Secured(['FOO-ROLE'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...