31 lines
1.1 KiB
Java
31 lines
1.1 KiB
Java
package com.goi.erp.employee;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
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.List;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class EmployeeDetailsService implements UserDetailsService {
|
|
|
|
private final EmployeeRepository employeeRepository;
|
|
private final EmployeeRoleRepository employeeRoleRepository;
|
|
|
|
@Override
|
|
public UserDetails loadUserByUsername(String empLoginId) throws UsernameNotFoundException {
|
|
// Employee 조회
|
|
Employee employee = employeeRepository.findByEmpLoginId(empLoginId)
|
|
.orElseThrow(() -> new UsernameNotFoundException("Employee not found"));
|
|
|
|
// EmployeeRole 조회 (활성화된 역할만)
|
|
List<EmployeeRole> roles = employeeRoleRepository.findActiveRolesByEmployeeId(employee.getEmpId());
|
|
|
|
// EmployeeDetails에 Employee + 역할 전달
|
|
return new EmployeeDetails(employee, roles);
|
|
}
|
|
}
|