메세지 코드 enum 화 작업

This commit is contained in:
Rinjae
2025-11-04 15:57:54 +09:00
parent f46cb6ca72
commit af3b872f29
7 changed files with 102 additions and 39 deletions
@@ -1,6 +1,6 @@
package com.eactive.apim.portal.apps.auth.service;
import com.eactive.apim.portal.portaluser.event.UserVerificationMobilePhoneEvent;
import com.eactive.apim.portal.template.entity.MessageCode;
import com.eactive.apim.portal.template.service.MessageHandlerService;
import com.eactive.apim.portal.template.service.MessageRecipient;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,15 +31,15 @@ public class MessageSender {
// 이메일, SMS MESSAEG_CODE 다름 처리
String messageCode = "";
MessageCode code;
if ("email".equalsIgnoreCase(msgType)) {
messageCode = "USER_VERIFICATION_EMAIL";
code = MessageCode.USER_VERIFICATION_EMAIL;
} else if ("sms".equalsIgnoreCase(msgType)) {
messageCode = "USER_VERIFICATION_MOBILEPHONE";
code = MessageCode.USER_VERIFICATION_MOBILEPHONE;
} else {
throw new IllegalArgumentException("Unsupported message type: " + msgType);
}
messageHandlerService.publishEvent(UserVerificationMobilePhoneEvent.KEY, recipient, params);
messageHandlerService.publishEvent(code, recipient, params);
}
}
@@ -19,7 +19,7 @@ import com.eactive.apim.portal.file.service.FileTypeContext;
import com.eactive.apim.portal.portalorg.entity.PortalOrg;
import com.eactive.apim.portal.portaluser.entity.PortalUser;
import com.eactive.apim.portal.portaluser.entity.PortalUserEnums;
import com.eactive.apim.portal.portaluser.event.UserEmailActivationEvent;
import com.eactive.apim.portal.portaluser.event.UserVerificationEmailEvent;
import com.eactive.apim.portal.portaluser.repository.PortalUserRepository;
import com.eactive.apim.portal.template.service.MessageHandlerService;
import com.eactive.apim.portal.template.service.MessageRecipient;
@@ -206,7 +206,7 @@ public class OrgRegisterFacadeImpl implements OrgRegisterFacade {
try {
String encToken = encryptionUtil.encrypt(tokenValue);
params.put("token", Base64.encode(encToken.getBytes(StandardCharsets.UTF_8)));
messageHandlerService.publishEvent(UserEmailActivationEvent.KEY, recipient, params);
messageHandlerService.publishEvent(UserVerificationEmailEvent.KEY, recipient, params);
} catch (NoSuchPaddingException | NoSuchAlgorithmException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {
throw new SystemException("암호화 모듈 오류");
}
@@ -16,7 +16,7 @@ import com.eactive.apim.portal.invitation.entity.UserInvitation;
import com.eactive.apim.portal.invitation.entity.UserInvitationEnums;
import com.eactive.apim.portal.invitation.repository.UserInvitationRepository;
import com.eactive.apim.portal.portaluser.entity.PortalUser;
import com.eactive.apim.portal.portaluser.event.UserEmailActivationEvent;
import com.eactive.apim.portal.portaluser.event.UserVerificationEmailEvent;
import com.eactive.apim.portal.portaluser.repository.PortalUserRepository;
import com.eactive.apim.portal.template.service.MessageHandlerService;
import com.eactive.apim.portal.template.service.MessageRecipient;
@@ -219,7 +219,7 @@ public class UserRegisterFacadeImpl implements UserRegisterFacade {
String tokenValue = String.valueOf(authNumberGenerator.generateAuthNumber());
// String tokenValue = registeredUser.getCreatedDate().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + ":" + registeredUser.getId();
params.put("token", tokenValue);
messageHandlerService.publishEvent(UserEmailActivationEvent.KEY, recipient, params);
messageHandlerService.publishEvent(UserVerificationEmailEvent.KEY, recipient, params);
// try {
// String encToken = encryptionUtil.encrypt(tokenValue);
@@ -1,7 +1,7 @@
package com.eactive.apim.portal.apps.user.service;
import com.eactive.apim.portal.template.entity.MessageCode;
import com.eactive.apim.portal.template.entity.MessageRequest;
import com.eactive.apim.portal.template.entity.MessageRequestEnums;
import com.eactive.apim.portal.template.repository.MessageRequestRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -16,12 +16,9 @@ public class MessageRequestService {
private final MessageRequestRepository messageRequestRepository;
public MessageRequest createMessageRequest(String messageCodeStr, String username, String email, String phone) {
public MessageRequest createMessageRequest(MessageCode messageCode, String username, String email, String phone) {
MessageRequest messageRequest = new MessageRequest();
// String을 MessageCode enum으로 변환
MessageRequestEnums.MessageCode messageCode = MessageRequestEnums.MessageCode.valueOf(messageCodeStr);
// MessageRequest 설정
messageRequest.setMessageCode(messageCode);
messageRequest.setSubject(messageCode.getDescription());
@@ -11,24 +11,13 @@ import com.eactive.apim.portal.config.PortalProperties;
import com.eactive.apim.portal.portaluser.entity.PortalUser;
import com.eactive.apim.portal.portaluser.entity.PortalUserEnums;
import com.eactive.apim.portal.portaluser.entity.PortalUserEnums.RoleCode;
import com.eactive.apim.portal.portaluser.event.UserEmailActivationEvent;
import com.eactive.apim.portal.portaluser.event.UserPasswordResetEvent;
import com.eactive.apim.portal.portaluser.repository.PortalUserRepository;
import com.eactive.apim.portal.template.entity.MessageCode;
import com.eactive.apim.portal.template.entity.MessageRequest;
import com.eactive.apim.portal.template.entity.MessageRequestEnums;
import com.eactive.apim.portal.template.repository.MessageRequestRepository;
import com.eactive.apim.portal.template.service.MessageHandlerService;
import com.eactive.apim.portal.template.service.MessageRecipient;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import lombok.RequiredArgsConstructor;
import org.apache.xerces.impl.dv.util.Base64;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -39,6 +28,16 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
@Service
@Transactional
@RequiredArgsConstructor
@@ -120,7 +119,7 @@ public class PortalUserAuthService implements UserDetailsService {
// Enum을 직접 전달
List<MessageRequest> messageRequests = messageRequestRepository.findByEmailAndMessageCode(
user.getLoginId(), MessageRequestEnums.MessageCode.USER_ACTIVATION
user.getLoginId(), MessageCode.USER_VERIFICATION_EMAIL
);
if (!messageRequests.isEmpty()) {
@@ -134,7 +133,7 @@ public class PortalUserAuthService implements UserDetailsService {
String encToken = encryptionUtil.encrypt(tokenValue);
params.put("token", Base64.encode(encToken.getBytes(StandardCharsets.UTF_8)));
MessageRecipient recipient = createMessageRecipient(user);
messageHandlerService.publishEvent(UserEmailActivationEvent.KEY, recipient, params);
messageHandlerService.publishEvent(MessageCode.USER_VERIFICATION_EMAIL, recipient, params);
} catch (NoSuchPaddingException | NoSuchAlgorithmException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {
throw new SystemException("암호화 모듈 오류");
}
@@ -5,18 +5,9 @@ import com.eactive.apim.portal.portaluser.entity.PortalUser;
import com.eactive.apim.portal.portaluser.entity.PortalUserEnums;
import com.eactive.apim.portal.portaluser.entity.UserPasswordHistory;
import com.eactive.apim.portal.portaluser.repository.PortalUserRepository;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Optional;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.eactive.apim.portal.portaluser.repository.UserPasswordHistoryRepository;
import com.eactive.apim.portal.template.entity.MessageCode;
import com.eactive.apim.portal.template.entity.MessageRequest;
import com.eactive.apim.portal.template.entity.MessageRequestEnums;
import com.eactive.apim.portal.template.repository.MessageRequestRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
@@ -24,6 +15,14 @@ import org.springframework.security.web.authentication.AuthenticationSuccessHand
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Optional;
@Service
@Transactional
@@ -94,7 +93,8 @@ public class PortalAuthenticationSuccessHandler implements AuthenticationSuccess
}
private boolean isTemporaryPasswordLogin(PortalUser user) {
Optional<MessageRequest> latestResetRequest = messageRequestRepository.findFirstByEmailAndMessageCodeOrderByRequestDateDesc(user.getLoginId(), MessageRequestEnums.MessageCode.USER_PASSWORD_RESET);
Optional<MessageRequest> latestResetRequest = messageRequestRepository.findFirstByEmailAndMessageCodeOrderByRequestDateDesc(
user.getLoginId(), MessageCode.USER_PASSWORD_RESET);
if (latestResetRequest.isPresent()) {
+67
View File
@@ -0,0 +1,67 @@
<configuration scan="true" scanPeriod="5 seconds">
<property name="LOG_PATH" value="D:\kjb-logs\${inst.Name:-devSvr00}"/>
<property name="PATTERN" value="%d{HH:mm:ss.SSS} [%thread] [%-3level] %logger - %msg %n" />
<property name="PATTERN_DATE" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-3level] %logger - %msg %n" />
<property name="PATTERN_CONSOLE" value="%d{HH:mm:ss.SSS} %magenta([%thread]) %highlight([%-3level]) %logger - %msg %n" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder><Pattern>${PATTERN}</Pattern></encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/root.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/backup/root.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder><pattern>${PATTERN}</pattern></encoder>
</appender>
<appender name="FILE_HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/hibernate.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/hibernate.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<logger name="com.eactive.apim" level="DEBUG" />
<!-- Hibernate SQL Logging -->
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="org.hibernate.engine.transaction" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="org.springframework.transaction.interceptor" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="org.springframework.orm.jpa" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
<logger name="com.atomikos" level="DEBUG" additivity="false">
<appender-ref ref="FILE_HIBERNATE" />
</logger>
</configuration>