2015-02-03 2 views
1

Я использую Spring Security контролировать власть в моем веб application.I импортировал безопасности тега в моем коде, как показано ниже:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
Затем я использую блок кода, как это контролировать, если пользователь имеет доступ к указанная кнопка:Как использовать суперпользователя с использованием Spring Security Framework?

<sec:authorize ifAnyGranted="addUser"> 
    <button type="button">Add User</button> 
</sec:authorize> 

с помощью этого кода, только пользователь, который имеет AddUser власти может видеть эту кнопку и использовать его.

Теперь мой вопрос: Можем ли мы иметь суперпользователя, что даже если у него нет полномочий addUser, он все еще может видеть эту кнопку?

ответ

0

Нет, я не думаю, что в Spring Security есть встроенная функция. Вы можете:

  1. есть супер роли пользователя (органа), который вы проверяете для в каждой проверки авторизации или

  2. дайте свой суперпользователя все возможные органы вашего провайдера аутентификации или данные пользователей сервиса.

+0

Да, я использовал второе решение для этого, хотя это нехорошее решение, но мне все равно нужно поблагодарить вас! – lucumt

0

Я не уверен, что это ожидаемый ответ, но SpringSecurity имеет понятие иерархии ролей. Это означает, что вы можете создать суперпользовательскую роль и объявить ее содержащей addUser авторитет (среди прочих).

Таким образом, любой пользователь, имеющий superUser власти будет (среди других разрешений) см вашей кнопки

Ссылки: От Hierarchical Roles в справочном руководстве Spring Security вы могли бы написать что-то вроде

<bean id="roleHierarchy" 
     class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl"> 
    <property name="hierarchy"> 
     <value> 
      ROLE_SUPER_USER > ROLE_ADD_USER 
     </value> 
    </property> 
</bean> 
+0

Прежде чем я отправлю свой вопрос в stackoverflow, я искал его в google и нашел иерархические роли, но это не соответствует моему требованию, потому что, когда я использую это, мне нужно написать все полномочия в файл конфигурации весны xml, но сами авториты много, и они хранятся в базе данных! – lucumt

+0

@ lucumt Пользовательский суперпользователь может быть решением. Я расскажу об этом через некоторое время, если вы заинтересованы. –

Смежные вопросы