В моем проекте Grails я определил несколько иерархических ролей с помощью плагина Spring Security, например. ROLE_USER > SOME_OTHER_ROLE
. При защите методов контроллера с использованием аннотации @Secured
все работает просто отлично. Однако я также хотел бы программно проверить роль в моем коде для одного варианта использования. Используя следующий подход, я всегда получаю false
, даже если пользователь наследует роль через определение иерархической роли:
request.isUserInRole('SOME_OTHER_ROLE')
Также следующие вызовы никогда напрямую не возвращают унаследованные роли:
SecurityContextHolder.context?.authentication?.authorities
springSecurityService.getPrincipal().getAuthorities()
Есть ли способ проверить, имеет ли пользователь также унаследованную роль?