주석 추가 , 로그 추가

This commit is contained in:
ckx6954 2024-12-20 12:56:10 +09:00
parent f5f3f2af6c
commit 6afe1ee8a8
76 changed files with 1215 additions and 136 deletions

View File

@ -1,8 +1,22 @@
/************************************************************
*
* @packageName : io.company.localhost
* @fileName : LocalhostApplication.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost;
import java.util.Locale;
import java.util.TimeZone;
import io.company.localhost.common.config.ComponentScanConfig;
import io.company.localhost.common.context.ApplicationContextProvider;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -10,9 +24,8 @@ import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
import io.company.localhost.common.config.ComponentScanConfig;
import io.company.localhost.common.context.ApplicationContextProvider;
import lombok.extern.slf4j.Slf4j;
import java.util.Locale;
import java.util.TimeZone;
@Slf4j
@SpringBootApplication(scanBasePackageClasses = { ApplicationContextProvider.class , ComponentScanConfig.class} ,

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost
* @fileName : ServletInitializer.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost;
import org.springframework.boot.builder.SpringApplicationBuilder;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.annotation
* @fileName : Admin.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.annotation;
import java.lang.annotation.ElementType;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.annotation
* @fileName : Guest.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.annotation;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.annotation
* @fileName : Member.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.annotation;
import java.lang.annotation.ElementType;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.annotation
* @fileName : ParameterCheck.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.annotation;
import java.lang.annotation.ElementType;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.annotation
* @fileName : ReqMap.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.annotation;
import java.lang.annotation.*;

View File

@ -1,7 +1,21 @@
/************************************************************
*
* @packageName : io.company.localhost.common.aop
* @fileName : ParameterAop.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.aop;
import java.lang.reflect.Method;
import io.company.localhost.common.dto.ApiResponse;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
@ -10,8 +24,7 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import io.company.localhost.common.response.ApiResponse;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Method;
@Slf4j
@Aspect

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config
* @fileName : ComponentScanConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;

View File

@ -1,18 +1,30 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config
* @fileName : JacksonCommonConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config;
import java.util.Locale;
import java.util.TimeZone;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import io.company.localhost.common.filter.SampleFilter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.util.Locale;
import java.util.TimeZone;
//ObjectMapper 빈으로 등록
//Object to JSON - JSON to Object
@ -27,7 +39,7 @@ public class JacksonCommonConfig {
filterProvider.setFailOnUnknownId(false); // 없는 필드가 있을 경우 오류를 발생시키지 않음
filterProvider.addFilter("jacksonFilter", new SampleFilter()); // 사용자 정의 필터 추가
Jackson2ObjectMapperBuilder mapperBuilder = Jackson2ObjectMapperBuilder.json()
return Jackson2ObjectMapperBuilder.json()
.serializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL) // null 값은 제외
.failOnUnknownProperties(false) // 없는 속성이 있으면 무시
.filters(filterProvider) // 필터 적용
@ -35,9 +47,7 @@ public class JacksonCommonConfig {
.featuresToDisable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS) // 기간을 타임스탬프로 변환하지 않음
.timeZone(TimeZone.getDefault()) // 기본 타임존 사용
.locale(Locale.getDefault()) // 기본 로케일 사용
.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); // 날짜 포맷 지정
return mapperBuilder;
.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
}
@Bean

View File

@ -1,9 +1,20 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config
* @fileName : WebMvcConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import io.company.localhost.common.resolver.RequestToMapArgumentResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
@ -15,7 +26,9 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import io.company.localhost.common.resolver.RequestToMapArgumentResolver;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config.mybatis
* @fileName : DataSourceConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config.mybatis;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config.mybatis
* @fileName : DataSourceProperties.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config.mybatis;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config.mybatis
* @fileName : MyBatisCustomLogger.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config.mybatis;
import org.apache.ibatis.logging.Log;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config.mybatis
* @fileName : MybatisConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config.mybatis;
import io.company.localhost.common.constants.LocalhostProject;

View File

@ -1,11 +1,21 @@
/************************************************************
*
* @packageName : io.company.localhost.common.config.mybatis
* @fileName : TransactionConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.config.mybatis;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.sql.DataSource;
import io.company.localhost.common.constants.LocalhostProject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.Advisor;
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.support.DefaultPointcutAdvisor;
@ -21,9 +31,10 @@ import org.springframework.transaction.interceptor.RollbackRuleAttribute;
import org.springframework.transaction.interceptor.RuleBasedTransactionAttribute;
import org.springframework.transaction.interceptor.TransactionInterceptor;
import io.company.localhost.common.constants.LocalhostProject;
import lombok.extern.slf4j.Slf4j;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* naming rule method 기반으로 이뤄진다.

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.constants
* @fileName : LocalhostProject.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.constants;
public final class LocalhostProject {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.context
* @fileName : ApplicationContextProvider.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.context;
import org.springframework.beans.BeansException;

View File

@ -1,4 +1,18 @@
package io.company.localhost.common.response;
/************************************************************
*
* @packageName : io.company.localhost.common.dto
* @fileName : ApiResponse.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.dto;
import org.springframework.http.HttpStatus;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.dto
* @fileName : MapDto.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.dto;
import org.apache.commons.collections.map.ListOrderedMap;

View File

@ -1,12 +1,24 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception
* @fileName : ErrorResponse.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import org.springframework.validation.FieldError;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import java.util.List;
@Builder
public record ErrorResponse(long code,String status, String message,

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception
* @fileName : ErrorResult.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception;
import org.springframework.http.ResponseEntity;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception
* @fileName : GlobalExceptionHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception;
import org.springframework.http.ResponseEntity;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception
* @fileName : NotFoundHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception;
import org.springframework.http.HttpStatus;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception
* @fileName : RestApiException.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception;
import io.company.localhost.common.exception.code.ErrorCode;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception.code
* @fileName : CommonErrorCode.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception.code;
import org.springframework.http.HttpStatus;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception.code
* @fileName : ErrorCode.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception.code;
import org.springframework.http.HttpStatus;

View File

@ -1,8 +1,22 @@
/************************************************************
*
* @packageName : io.company.localhost.common.exception.code
* @fileName : UserErrorCode.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.exception.code;
import org.springframework.http.HttpStatus;
import io.company.localhost.common.response.ApiResponse;
import io.company.localhost.common.dto.ApiResponse;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

View File

@ -1,18 +1,27 @@
/************************************************************
*
* @packageName : io.company.localhost.common.filter
* @fileName : RequestCachingFilter.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.filter;
import java.io.IOException;
import io.company.localhost.common.wrapper.CachedBodyRequestWrapper;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
/**
* CachedBodyRequestWrapper 사용하여
* HTTP 요청의 본문을 캐시하고, 해당 본문을 여러 읽을 있도록 하는

View File

@ -1,15 +1,28 @@
/************************************************************
*
* @packageName : io.company.localhost.common.filter
* @fileName : SampleFilter.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.filter;
import java.lang.annotation.Annotation;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.PropertyWriter;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import io.company.localhost.common.annotation.ReqMap;
import lombok.extern.slf4j.Slf4j;
import java.lang.annotation.Annotation;
//Object를 Json으로 변환할 적용
@Slf4j
public class SampleFilter extends SimpleBeanPropertyFilter {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.filter
* @fileName : WebCorsFilter.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.filter;
import org.springframework.context.annotation.Bean;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.resolver
* @fileName : RequestToMapArgumentResolver.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.resolver;
import io.company.localhost.common.annotation.ReqMap;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.config
* @fileName : AuthConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.config;
import org.springframework.context.annotation.Bean;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.config
* @fileName : SecurityConfig.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.config;
import io.company.localhost.common.filter.WebCorsFilter;

View File

@ -1,14 +1,27 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.details
* @fileName : MemberPrincipalDetails.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.details;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import io.company.localhost.vo.MemberVo;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import io.company.localhost.vo.MemberVo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public record MemberPrincipalDetails(MemberVo member) implements UserDetails {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.dsl
* @fileName : RestApiDsl.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.dsl;
import org.springframework.http.HttpMethod;

View File

@ -1,7 +1,29 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.filter
* @fileName : RestAuthenticationFilter.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.filter;
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.common.security.token.RestAuthenticationToken;
import io.company.localhost.utils.WebUtil;
import io.company.localhost.vo.MemberVo;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationServiceException;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@ -16,17 +38,7 @@ import org.springframework.security.web.context.SecurityContextRepository;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.common.security.token.RestAuthenticationToken;
import io.company.localhost.utils.WebUtil;
import io.company.localhost.vo.MemberVo;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
@Slf4j
public class RestAuthenticationFilter extends AbstractAuthenticationProcessingFilter {

View File

@ -1,18 +1,29 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.handler
* @fileName : MemberAuthFailureHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.handler;
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component("failHandler")
public class MemberAuthFailureHandler implements AuthenticationFailureHandler {

View File

@ -1,7 +1,25 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.handler
* @fileName : MemberAuthSuccessHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.handler;
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.vo.MemberVo;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.security.core.Authentication;
@ -10,13 +28,7 @@ import org.springframework.security.web.authentication.AuthenticationSuccessHand
import org.springframework.security.web.authentication.RememberMeServices;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.vo.MemberVo;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
@Slf4j
@Component("successHandler")

View File

@ -1,17 +1,29 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.handler
* @fileName : RestAccessDeniedHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.handler;
import java.io.IOException;
import org.springframework.http.MediaType;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.common.exception.code.UserErrorCode;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import java.io.IOException;
public class RestAccessDeniedHandler implements AccessDeniedHandler {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.handler
* @fileName : RestAuthenticationEntryPointHandler.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.handler;
import com.fasterxml.jackson.databind.ObjectMapper;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.manager
* @fileName : CustomDynamicAuthorizationManager.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.manager;
import io.company.localhost.common.annotation.Admin;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.mapper
* @fileName : MapBasedUrlRoleMapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.mapper;
import java.util.HashMap;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.mapper
* @fileName : PersistentUrlRoleMapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.mapper;
import java.util.Map;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.mapper
* @fileName : UrlRoleMapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.mapper;
import java.util.Map;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.provider
* @fileName : MemberAuthenticatorProvider.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.provider;
import org.springframework.security.authentication.AuthenticationProvider;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.service
* @fileName : CustomRememberMeServices.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.service;
import io.company.localhost.common.security.details.MemberPrincipalDetails;

View File

@ -1,9 +1,23 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.service
* @fileName : DynamicAuthorizationService.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.service;
import java.util.Map;
import io.company.localhost.common.security.mapper.UrlRoleMapper;
import java.util.Map;
public class DynamicAuthorizationService {
private final UrlRoleMapper delegate;
public DynamicAuthorizationService(UrlRoleMapper delegate) {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.service
* @fileName : MemberPrincipalDetailService.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.service;
import org.springframework.security.core.userdetails.UserDetails;

View File

@ -1,9 +1,20 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.session
* @fileName : AuthenticationSessionControlStrategy.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.session;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.core.session.SessionInformation;
import org.springframework.security.core.session.SessionRegistry;
@ -11,7 +22,9 @@ import org.springframework.security.web.authentication.session.ConcurrentSession
import org.springframework.security.web.authentication.session.SessionAuthenticationException;
import org.springframework.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//세션 만료에 대한 로직
@Slf4j

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.session
* @fileName : CustomSessionInformationExpiredStrategy.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.session;
import com.fasterxml.jackson.databind.ObjectMapper;

View File

@ -1,21 +1,29 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.session
* @fileName : CustomSessionRegistryImpl.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.session;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import io.company.localhost.common.security.details.MemberPrincipalDetails;
import io.company.localhost.vo.MemberVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationListener;
import org.springframework.security.core.session.SessionDestroyedEvent;
import org.springframework.security.core.session.SessionInformation;
import org.springframework.security.core.session.SessionRegistry;
import org.springframework.util.Assert;
import io.company.localhost.common.security.details.MemberPrincipalDetails;
import io.company.localhost.vo.MemberVo;
import lombok.extern.slf4j.Slf4j;
import java.util.*;
// 세션 관리용
@Slf4j

View File

@ -1,10 +1,24 @@
/************************************************************
*
* @packageName : io.company.localhost.common.security.token
* @fileName : RestAuthenticationToken.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.security.token;
import java.util.Collection;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.GrantedAuthority;
import java.util.Collection;
public class RestAuthenticationToken extends AbstractAuthenticationToken {
private final Object principal;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.webEnum
* @fileName : WebEnum.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.webEnum;
//WebUtil 타입 Header

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.wrapper
* @fileName : CachedBodyRequestWrapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.wrapper;
import com.fasterxml.jackson.core.type.TypeReference;

View File

@ -1,14 +1,26 @@
/************************************************************
*
* @packageName : io.company.localhost.common.wrapper
* @fileName : HTMLTagRequestWrapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.wrapper;
import java.util.Map;
import org.springframework.web.util.HtmlUtils;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import org.springframework.web.util.HtmlUtils;
import java.util.Map;
//HTML 태그를 escape 처리하는 기능
//필요하면 filter 만들어서 쓰자
public class HTMLTagRequestWrapper extends HttpServletRequestWrapper {
public HTMLTagRequestWrapper(HttpServletRequest request) {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.common.wrapper
* @fileName : RequestMappingWrapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.common.wrapper;
import jakarta.servlet.http.HttpServletRequest;

View File

@ -1,10 +1,24 @@
/************************************************************
*
* @packageName : io.company.localhost.controller.common
* @fileName : TestController.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.controller.common;
import io.company.localhost.common.annotation.Guest;
import io.company.localhost.common.annotation.ParameterCheck;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.common.response.ApiResponse;
import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.service.TestService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,9 +1,23 @@
/************************************************************
*
* @packageName : io.company.localhost.controller.common
* @fileName : UserController.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.controller.common;
import io.company.localhost.common.annotation.Admin;
import io.company.localhost.common.annotation.Guest;
import io.company.localhost.common.annotation.Member;
import io.company.localhost.common.response.ApiResponse;
import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.utils.AuthUtil;
import io.company.localhost.utils.SessionListener;
import io.company.localhost.vo.MemberVo;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : MemberMapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : TestMapper.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import io.company.localhost.common.dto.MapDto;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.proc
* @fileName : sample.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.proc;
public class sample {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.service
* @fileName : TestService.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.service;
import com.github.pagehelper.PageHelper;

View File

@ -1,8 +1,22 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : AuthUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import java.util.Collection;
import java.util.Objects;
import io.company.localhost.vo.MemberVo;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
@ -11,9 +25,8 @@ import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
import io.company.localhost.vo.MemberVo;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import java.util.Collection;
import java.util.Objects;
// 로그인 유저 정보

View File

@ -1,10 +1,24 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : CamelUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import lombok.experimental.UtilityClass;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import lombok.experimental.UtilityClass;
@UtilityClass
public class CamelUtil {

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : ContextUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import org.springframework.beans.BeansException;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : ConvertUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import java.lang.reflect.Field;

View File

@ -1,11 +1,25 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : ExceptionUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import lombok.experimental.UtilityClass;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Objects;
import lombok.experimental.UtilityClass;
// try-catch error 메시지 처리용
// System.out.println(ExceptionUtil.messageTrace(t)); 등등
@UtilityClass

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : JacksonUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import com.fasterxml.jackson.core.JsonProcessingException;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : PageUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import com.github.pagehelper.PageInfo;

View File

@ -1,14 +1,27 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : SessionListener.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.stereotype.Component;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;
import lombok.Getter;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
//세션 확인용
@Component

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : SessionUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import org.springframework.web.util.WebUtils;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : StringUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import org.springframework.util.StringUtils;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.utils
* @fileName : WebUtil.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.utils;
import io.company.localhost.common.webEnum.WebEnum;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.vo
* @fileName : MemberVo.java
* @author : 조인제
* @date : 24.12.06
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 조인제 최초 생성
*
*************************************************************/
package io.company.localhost.vo;
import lombok.*;

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){blue} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="CONSOLE_LOG_CHARSET" value="${CONSOLE_LOG_CHARSET:-default}"/>
<property name="ERR_LOG_FILE_NAME" value="error"/>
<property name="LOG_FILE_NAME" value="localNet"/>
<property name="LOG_PATH" value="${LOG_PATH}"/>
<property name="LOG_PATTERN" value ="%d{yyyy-MM-dd HH:mm:ss} %-5level [%logger{30}:%line] - %msg%n "/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${CONSOLE_LOG_CHARSET}</charset>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<logger name="io.company">
<level value="DEBUG" />
</logger>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>