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 roles = employeeRoleRepository.findActiveRolesByEmployeeId(employee.getEmpId()); // EmployeeDetails에 Employee + 역할 전달 return new EmployeeDetails(employee, roles); } }