guardia-hrm/backend/src/main/java/com/zioinfo/hrm/auth/AuthService.java
DESKTOP-TKLFCPR\ython f7aa51c33f feat(hrm): GUARDiA HRM v1.0 AI 인사관리 플랫폼 (사원/조직/급여/근태/성과/채용/교육/AI분석)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 13:52:49 +09:00

41 lines
1.4 KiB
Java

package com.zioinfo.hrm.auth;
import com.zioinfo.hrm.auth.mapper.UserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class AuthService {
private final UserMapper userMapper;
private final PasswordEncoder passwordEncoder;
private final JwtUtil jwtUtil;
public String login(String username, String password) {
HrmUser user = userMapper.findByUsername(username);
if (user == null || !user.isActive()) {
throw new RuntimeException("ERR-AUTH-001: 존재하지 않거나 비활성 계정");
}
if (!passwordEncoder.matches(password, user.getPasswordHash())) {
throw new RuntimeException("ERR-AUTH-002: 비밀번호 불일치");
}
return jwtUtil.generate(username, user.getRole());
}
public Map<String, Object> me(String token) {
String username = jwtUtil.getUsername(token);
String role = jwtUtil.getRole(token);
HrmUser u = userMapper.findByUsername(username);
Map<String, Object> m = new HashMap<>();
m.put("username", username);
m.put("role", role);
m.put("displayName", u != null ? u.getDisplayName() : username);
return m;
}
}