smartproc-be/src/main/java/com/iconplus/smartproc/configuration/CustomUserDetailsService.java
2023-05-23 19:42:51 +07:00

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);
}
}