У меня есть таблица элементов, пользователь должен иметь возможность выбирать некоторые из них, затем эти элементы помещаются в другую таблицу (во второй таблице они связаны с пользователем, который выбрал Предметы). Я мог бы связать элементы и пользователей с помощью имен пользователей, но я полагаю, что это не будет здорово. Интересно, что это хороший способ сделать это. Я знаю, что есть простой способ получить имя пользователя (<sec:authentication property="principal.username"/>
), но сегодня я узнал, что такого идентификатора нет. Каков хороший способ решить эту проблему? Должен ли я реализовать UserDetails
, чтобы иметь возможность получить каждый идентификатор? Есть ли хороший пример этой реализации? Я использую Hibernate для связи с базой данных. Есть ли другой способ идентификации (составной ключ состоит из значений, которые легко получить или что-то в этом роде)? Заранее спасибо.Получение уникальных пользовательских данных в Spring Security
0
A
ответ
2
Да, вы должны реализовать свой собственный UserDetail, который будет иметь атрибут id.
После этого вы заполните этот объект во время аутентификации в своей реализации UserDetailService.
Например:
@Service("CustomUserDetailService")
public class CustomUserDetailService implements UserDetailsService{
@Autowired
private IUserDao userDao;
@Override
public UserDetails loadUserByUsername(String name) throws UsernameNotFoundException, DataAccessException {
User user = userDao.loadByName(name);
CustomUserDetail customUserDetail = new CustomUserDetail();
customUserDetail.setId(user.getId());
customUserDetail.setPassword(user.getPassword());
return customUserDetail ;
}
После этого вы можете получить что-либо от вашего основного:
<sec:authentication property="principal.id"/>
Смежные вопросы
- 1. Фильтр пользовательских выходов Spring Security
- 2. соль Spring Security для пользовательских UserDetails
- 3. Проверка подлинности Spring Security из пользовательских таблиц
- 4. Spring Security Получение ролей с веб-службы
- 5. Получение уникальных данных из db
- 6. Получение уникальных данных из ISingleResult
- 7. Grails spring security получение зарегистрированного пользователя
- 8. Spring Security 2.0, Получение статуса аутентификации пользователя
- 9. Получение Spring Security Context с нулевой аутентификацией
- 10. Grails Spring Security REST Получение 403 Forbidden
- 11. Spring Security 3.0 функциональность Spring Security 2.0.2
- 12. Spring security UserDetailsService configuration
- 13. Как добавить несколько пользовательских фильтров в Spring Security 3?
- 14. Spring Security
- 15. Spring Security
- 16. Spring security
- 17. JAX-RS и Spring Security - получение подлинности пользователя
- 18. Spring Security в GWT
- 19. NoSuchBeanDefinitionException в Spring Security
- 20. Spring Security Authorization
- 21. CAS - Spring Security 3.1 Book
- 22. Spring-Security: разница между/** и/* шаблоном url в Spring-Security
- 23. Spring Security Performances
- 24. Получение уникальных значений в R
- 25. Получение пользовательских данных с сеанса
- 26. Получение пользовательских данных от Paypal
- 27. Получение пользовательских данных из ListPicker
- 28. Получение пользовательских данных от JavaFX
- 29. Spring Security Rest
- 30. spring-security & spring-mvc configuration
Спасибо, этот пример выглядит очень красиво. Я нашел несколько учебников, но они, похоже, подходят для других задач, и все немного отличаются в структуре классов. Не могли бы вы предоставить ссылку (если она есть) на полный пример? –
Хорошо, я думаю, вы можете найти множество примеров онлайн, поэтому я не дам другую ссылку, которую вы можете найти в Google. Вместо этого я даю ссылку на мой персональный gitHub, где я использую Spring sec, проверьте это https://github.com/shagaan/Wicked-Book/tree/master/src/main/java/com/tuto/wickedBook/security –
Спасибо много, это прекрасный пример! –