2013-11-12 2 views
0

У меня есть вопрос о весенней безопасности и подмигнул в отношении к:Профиля в весенне-безопасность

<authentication-manager> 
    <authentication-provider> 
     <user-service> 

мне нужно что весовое имя может сделать некоторые операции, которые не подмигнули же другие операции другой пользователь, то есть

User Admin can make: create, read, delete, update. 
User A can make: create, read, update. 
User B can make: read, delete. 

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

Могу ли я сделать с пружинной защитой? В базе данных аналогичен: enter image description here

Оба пользователи идут на тот же страницу, но с разным oprations, например, www.myApp.com/pageOperation.

Спасибо.

ответ

0

В Spring Security, разрешение на какой-либо действие призыва сохраняется как объект GrantedAuthority в текущем Authentication объекта в «органах» сбор Таким образом, вы должны предоставить различные коллекции властей для разных пользователей путем проверки имени пользователя. Вы можете жестко закодировать их в разделе <user-service> или предоставить собственную реализацию UserDetailService, которые разрешают полномочия пользователей на основе имени пользователя. UserDetailsService имеет метод loadUserByUsername, который регистрирует имя пользователя и возвращает UserDetails объект, который содержит коллекцию пользовательских полномочий. Вы можете проверить полномочия пользователя, когда он вызывает какое-либо действие, применив аннотацию @PreAuthorize к целевому методу или перехватив соответствующий URL-адрес. Надеюсь это поможет.

+0

У меня есть глобальное видение о том, как вы мне это рассказываете, но я не знаю, как это было бы. Вы знаете какой-нибудь пример, где это объясняется? Это для меня лучше. – Ltcs

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