123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package es.uv.garcosda.security;
- import java.util.Collection;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.core.GrantedAuthority;
- import org.springframework.security.core.authority.AuthorityUtils;
- 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 org.springframework.transaction.annotation.Transactional;
- import es.uv.garcosda.domain.User;
- import es.uv.garcosda.repositories.UserRepository;
- @Service
- @Transactional
- public class CustomUserDetailsService implements UserDetailsService {
- @Autowired
- private UserRepository userRepository;
-
- @Override
- public UserDetails loadUserByUsername(String userName)
- throws UsernameNotFoundException {
- User user = userRepository.findByUsername(userName)
- .orElseThrow(() -> new UsernameNotFoundException("User "+userName+" not found"));
- return new org.springframework.security.core.userdetails.User(
- user.getUsername(),
- user.getPassword(),
- getAuthorities(user));
- }
-
- private static Collection<? extends GrantedAuthority> getAuthorities(User user) {
- String[] userRoles = user.getRoles()
- .stream()
- .map((role) -> role.getName())
- .toArray(String[]::new);
- Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(userRoles);
- return authorities;
- }
- }
|