/
ilyaBu
/
WebSpringJava
Обзор
Документация
Войти
/
ilyaBu
/
WebSpringJava
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/gb/spring/diplomawebjavaspringgb/service/impl/CustomUserDetailsService.java
54 строки
2 KB
IliaBu
Update code
14 июл 2024, 15:26
14 июл 2024, 15:26
3414678
Код
Авторство
О чём код?
package ru.gb.spring.diplomawebjavaspringgb.service.impl; import ru.gb.spring.diplomawebjavaspringgb.model.User; import ru.gb.spring.diplomawebjavaspringgb.repository.UserRepository; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.stream.Collectors; /** * Сервис персонализированной информации о пользователях. */ @Service public class CustomUserDetailsService implements UserDetailsService { private final UserRepository userRepository; public CustomUserDetailsService(UserRepository userRepository) { this.userRepository = userRepository; } @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { User user = userRepository.findByEmail(email); if (user != null) { return new org.springframework.security.core.userdetails.User(user.getEmail(), user.getPassword(), getAuthorities(user)); } else { throw new UsernameNotFoundException("Неправильное имя пользователя или пароль."); } } /** * Метод извлекает и обрабатывает роли, связанные с данным пользователем. * Он создает коллекцию предоставленных полномочий на основе ролей пользователя. * * @param user пользователь, для которого необходимо получить и обработать роли. * @return Коллекция предоставленных полномочий на основе ролей пользователя. */ private Collection<GrantedAuthority> getAuthorities(User user) { return user.getRoles().stream() .map(role -> new SimpleGrantedAuthority(role.getName())) .collect(Collectors.toSet()); } }