add spring security and token management

This commit is contained in:
dirgantarasiahaan
2023-05-23 19:42:51 +07:00
parent 597d4062c7
commit c76c01a174
35 changed files with 1095 additions and 53 deletions

View File

@@ -0,0 +1,33 @@
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);
}
}