34 lines
1.1 KiB
Java
34 lines
1.1 KiB
Java
package com.iconplus.smartproc.configuration;
|
|
|
|
import com.iconplus.smartproc.model.projection.UserRoleView;
|
|
import com.iconplus.smartproc.repository.RolesRepository;
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
@Service
|
|
public class CustomUserDetailsService implements UserDetailsService {
|
|
|
|
private final RolesRepository rolesRepository;
|
|
|
|
public CustomUserDetailsService(RolesRepository rolesRepository) {
|
|
this.rolesRepository = rolesRepository;
|
|
}
|
|
|
|
|
|
@Override
|
|
public UserDetails loadUserByUsername(String username) {
|
|
List<SimpleGrantedAuthority> authorities = null;
|
|
Optional<UserRoleView> userRole = rolesRepository.getUserRoleByUserId(username);
|
|
if (userRole.isPresent()) {
|
|
authorities=List.of(new SimpleGrantedAuthority(userRole.get().getRole()));
|
|
}
|
|
|
|
return new org.springframework.security.core.userdetails.User(username, username, authorities);
|
|
}
|
|
}
|