주석 추가 , 로그 추가
This commit is contained in:
parent
f5f3f2af6c
commit
6afe1ee8a8
@ -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;
|
package io.company.localhost;
|
||||||
|
|
||||||
import java.util.Locale;
|
import io.company.localhost.common.config.ComponentScanConfig;
|
||||||
import java.util.TimeZone;
|
import io.company.localhost.common.context.ApplicationContextProvider;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
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.jdbc.DataSourceTransactionManagerAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
|
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
|
||||||
|
|
||||||
import io.company.localhost.common.config.ComponentScanConfig;
|
import java.util.Locale;
|
||||||
import io.company.localhost.common.context.ApplicationContextProvider;
|
import java.util.TimeZone;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@SpringBootApplication(scanBasePackageClasses = { ApplicationContextProvider.class , ComponentScanConfig.class} ,
|
@SpringBootApplication(scanBasePackageClasses = { ApplicationContextProvider.class , ComponentScanConfig.class} ,
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost;
|
||||||
|
|
||||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.annotation;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.annotation;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|||||||
@ -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;
|
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.JoinPoint;
|
||||||
import org.aspectj.lang.annotation.AfterReturning;
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
@ -10,8 +24,7 @@ import org.aspectj.lang.annotation.Pointcut;
|
|||||||
import org.aspectj.lang.reflect.MethodSignature;
|
import org.aspectj.lang.reflect.MethodSignature;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import io.company.localhost.common.response.ApiResponse;
|
import java.lang.reflect.Method;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Aspect
|
@Aspect
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config;
|
||||||
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||||
|
|||||||
@ -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;
|
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.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
|
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
|
||||||
|
|
||||||
import io.company.localhost.common.filter.SampleFilter;
|
import io.company.localhost.common.filter.SampleFilter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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 를 빈으로 등록
|
//ObjectMapper 를 빈으로 등록
|
||||||
//Object to JSON - JSON to Object
|
//Object to JSON - JSON to Object
|
||||||
@ -27,7 +39,7 @@ public class JacksonCommonConfig {
|
|||||||
filterProvider.setFailOnUnknownId(false); // 알 수 없는 필드가 있을 경우 오류를 발생시키지 않음
|
filterProvider.setFailOnUnknownId(false); // 알 수 없는 필드가 있을 경우 오류를 발생시키지 않음
|
||||||
filterProvider.addFilter("jacksonFilter", new SampleFilter()); // 사용자 정의 필터 추가
|
filterProvider.addFilter("jacksonFilter", new SampleFilter()); // 사용자 정의 필터 추가
|
||||||
|
|
||||||
Jackson2ObjectMapperBuilder mapperBuilder = Jackson2ObjectMapperBuilder.json()
|
return Jackson2ObjectMapperBuilder.json()
|
||||||
.serializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL) // null 값은 제외
|
.serializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL) // null 값은 제외
|
||||||
.failOnUnknownProperties(false) // 알 수 없는 속성이 있으면 무시
|
.failOnUnknownProperties(false) // 알 수 없는 속성이 있으면 무시
|
||||||
.filters(filterProvider) // 필터 적용
|
.filters(filterProvider) // 필터 적용
|
||||||
@ -35,9 +47,7 @@ public class JacksonCommonConfig {
|
|||||||
.featuresToDisable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS) // 기간을 타임스탬프로 변환하지 않음
|
.featuresToDisable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS) // 기간을 타임스탬프로 변환하지 않음
|
||||||
.timeZone(TimeZone.getDefault()) // 기본 타임존 사용
|
.timeZone(TimeZone.getDefault()) // 기본 타임존 사용
|
||||||
.locale(Locale.getDefault()) // 기본 로케일 사용
|
.locale(Locale.getDefault()) // 기본 로케일 사용
|
||||||
.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); // 날짜 포맷 지정
|
.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
|
||||||
|
|
||||||
return mapperBuilder;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config;
|
||||||
|
|
||||||
import java.util.List;
|
import io.company.localhost.common.resolver.RequestToMapArgumentResolver;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.TimeZone;
|
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.MediaType;
|
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.config.annotation.WebMvcConfigurer;
|
||||||
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
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
|
@Configuration
|
||||||
public class WebMvcConfig implements WebMvcConfigurer {
|
public class WebMvcConfig implements WebMvcConfigurer {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config.mybatis;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config.mybatis;
|
||||||
|
|
||||||
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
|
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config.mybatis;
|
||||||
|
|
||||||
import org.apache.ibatis.logging.Log;
|
import org.apache.ibatis.logging.Log;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config.mybatis;
|
||||||
|
|
||||||
import io.company.localhost.common.constants.LocalhostProject;
|
import io.company.localhost.common.constants.LocalhostProject;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.config.mybatis;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import io.company.localhost.common.constants.LocalhostProject;
|
||||||
import java.util.List;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
|
||||||
|
|
||||||
import org.springframework.aop.Advisor;
|
import org.springframework.aop.Advisor;
|
||||||
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
|
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
|
||||||
import org.springframework.aop.support.DefaultPointcutAdvisor;
|
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.RuleBasedTransactionAttribute;
|
||||||
import org.springframework.transaction.interceptor.TransactionInterceptor;
|
import org.springframework.transaction.interceptor.TransactionInterceptor;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
import io.company.localhost.common.constants.LocalhostProject;
|
import java.util.ArrayList;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* naming rule 은 method 기반으로 이뤄진다.
|
* naming rule 은 method 기반으로 이뤄진다.
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.constants;
|
||||||
|
|
||||||
public final class LocalhostProject {
|
public final class LocalhostProject {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.context;
|
||||||
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
|||||||
@ -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;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
@ -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;
|
package io.company.localhost.common.dto;
|
||||||
|
|
||||||
import org.apache.commons.collections.map.ListOrderedMap;
|
import org.apache.commons.collections.map.ListOrderedMap;
|
||||||
|
|||||||
@ -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;
|
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 org.springframework.validation.FieldError;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
public record ErrorResponse(long code,String status, String message,
|
public record ErrorResponse(long code,String status, String message,
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception;
|
||||||
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception;
|
||||||
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception;
|
||||||
|
|
||||||
import io.company.localhost.common.exception.code.ErrorCode;
|
import io.company.localhost.common.exception.code.ErrorCode;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception.code;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception.code;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.exception.code;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
import io.company.localhost.common.response.ApiResponse;
|
import io.company.localhost.common.dto.ApiResponse;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.filter;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import io.company.localhost.common.wrapper.CachedBodyRequestWrapper;
|
import io.company.localhost.common.wrapper.CachedBodyRequestWrapper;
|
||||||
import jakarta.servlet.Filter;
|
import jakarta.servlet.*;
|
||||||
import jakarta.servlet.FilterChain;
|
|
||||||
import jakarta.servlet.FilterConfig;
|
|
||||||
import jakarta.servlet.ServletException;
|
|
||||||
import jakarta.servlet.ServletRequest;
|
|
||||||
import jakarta.servlet.ServletResponse;
|
|
||||||
import jakarta.servlet.annotation.WebFilter;
|
import jakarta.servlet.annotation.WebFilter;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CachedBodyRequestWrapper 를 사용하여
|
* CachedBodyRequestWrapper 를 사용하여
|
||||||
* HTTP 요청의 본문을 캐시하고, 해당 본문을 여러 번 읽을 수 있도록 하는 것
|
* HTTP 요청의 본문을 캐시하고, 해당 본문을 여러 번 읽을 수 있도록 하는 것
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.filter;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
import com.fasterxml.jackson.databind.ser.PropertyWriter;
|
import com.fasterxml.jackson.databind.ser.PropertyWriter;
|
||||||
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
|
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
|
||||||
|
|
||||||
import io.company.localhost.common.annotation.ReqMap;
|
import io.company.localhost.common.annotation.ReqMap;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
|
||||||
//Object를 Json으로 변환할 때 적용
|
//Object를 Json으로 변환할 때 적용
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SampleFilter extends SimpleBeanPropertyFilter {
|
public class SampleFilter extends SimpleBeanPropertyFilter {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.filter;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.resolver;
|
||||||
|
|
||||||
import io.company.localhost.common.annotation.ReqMap;
|
import io.company.localhost.common.annotation.ReqMap;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.config;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.config;
|
||||||
|
|
||||||
import io.company.localhost.common.filter.WebCorsFilter;
|
import io.company.localhost.common.filter.WebCorsFilter;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.details;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import io.company.localhost.vo.MemberVo;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
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 {
|
public record MemberPrincipalDetails(MemberVo member) implements UserDetails {
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.dsl;
|
||||||
|
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
|
|||||||
@ -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;
|
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.http.HttpMethod;
|
||||||
import org.springframework.security.authentication.AuthenticationServiceException;
|
import org.springframework.security.authentication.AuthenticationServiceException;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
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.security.web.util.matcher.AntPathRequestMatcher;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.io.IOException;
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class RestAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
|
public class RestAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
|
||||||
|
|||||||
@ -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;
|
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.http.MediaType;
|
||||||
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
||||||
import org.springframework.security.core.AuthenticationException;
|
import org.springframework.security.core.AuthenticationException;
|
||||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.io.IOException;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
@Component("failHandler")
|
@Component("failHandler")
|
||||||
public class MemberAuthFailureHandler implements AuthenticationFailureHandler {
|
public class MemberAuthFailureHandler implements AuthenticationFailureHandler {
|
||||||
|
|||||||
@ -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;
|
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.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.security.core.Authentication;
|
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.security.web.authentication.RememberMeServices;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.io.IOException;
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component("successHandler")
|
@Component("successHandler")
|
||||||
|
|||||||
@ -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;
|
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 com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import io.company.localhost.common.exception.code.UserErrorCode;
|
import io.company.localhost.common.exception.code.UserErrorCode;
|
||||||
import jakarta.servlet.ServletException;
|
import jakarta.servlet.ServletException;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
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 {
|
public class RestAccessDeniedHandler implements AccessDeniedHandler {
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.handler;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.manager;
|
||||||
|
|
||||||
import io.company.localhost.common.annotation.Admin;
|
import io.company.localhost.common.annotation.Admin;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.mapper;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.mapper;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.mapper;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.provider;
|
||||||
|
|
||||||
import org.springframework.security.authentication.AuthenticationProvider;
|
import org.springframework.security.authentication.AuthenticationProvider;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.service;
|
||||||
|
|
||||||
import io.company.localhost.common.security.details.MemberPrincipalDetails;
|
import io.company.localhost.common.security.details.MemberPrincipalDetails;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.service;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import io.company.localhost.common.security.mapper.UrlRoleMapper;
|
import io.company.localhost.common.security.mapper.UrlRoleMapper;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class DynamicAuthorizationService {
|
public class DynamicAuthorizationService {
|
||||||
private final UrlRoleMapper delegate;
|
private final UrlRoleMapper delegate;
|
||||||
public DynamicAuthorizationService(UrlRoleMapper delegate) {
|
public DynamicAuthorizationService(UrlRoleMapper delegate) {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.service;
|
||||||
|
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.session;
|
||||||
|
|
||||||
import java.util.Collections;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.security.core.session.SessionInformation;
|
import org.springframework.security.core.session.SessionInformation;
|
||||||
import org.springframework.security.core.session.SessionRegistry;
|
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.security.web.authentication.session.SessionAuthenticationException;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
//세션 만료에 대한 로직
|
//세션 만료에 대한 로직
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.session;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.session;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import io.company.localhost.common.security.details.MemberPrincipalDetails;
|
||||||
import java.util.Collections;
|
import io.company.localhost.vo.MemberVo;
|
||||||
import java.util.Date;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.TreeMap;
|
|
||||||
|
|
||||||
import org.springframework.context.ApplicationListener;
|
import org.springframework.context.ApplicationListener;
|
||||||
import org.springframework.security.core.session.SessionDestroyedEvent;
|
import org.springframework.security.core.session.SessionDestroyedEvent;
|
||||||
import org.springframework.security.core.session.SessionInformation;
|
import org.springframework.security.core.session.SessionInformation;
|
||||||
import org.springframework.security.core.session.SessionRegistry;
|
import org.springframework.security.core.session.SessionRegistry;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import io.company.localhost.common.security.details.MemberPrincipalDetails;
|
import java.util.*;
|
||||||
import io.company.localhost.vo.MemberVo;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
// 세션 관리용
|
// 세션 관리용
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.security.token;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
public class RestAuthenticationToken extends AbstractAuthenticationToken {
|
public class RestAuthenticationToken extends AbstractAuthenticationToken {
|
||||||
|
|
||||||
private final Object principal;
|
private final Object principal;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.webEnum;
|
||||||
|
|
||||||
//WebUtil 타입 Header
|
//WebUtil 타입 Header
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.wrapper;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
|||||||
@ -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;
|
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.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletRequestWrapper;
|
import jakarta.servlet.http.HttpServletRequestWrapper;
|
||||||
|
import org.springframework.web.util.HtmlUtils;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
//HTML 태그를 escape 처리하는 기능
|
//HTML 태그를 escape 처리하는 기능
|
||||||
//필요하면 filter 로 만들어서 쓰자
|
|
||||||
public class HTMLTagRequestWrapper extends HttpServletRequestWrapper {
|
public class HTMLTagRequestWrapper extends HttpServletRequestWrapper {
|
||||||
|
|
||||||
public HTMLTagRequestWrapper(HttpServletRequest request) {
|
public HTMLTagRequestWrapper(HttpServletRequest request) {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.common.wrapper;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.controller.common;
|
||||||
|
|
||||||
import io.company.localhost.common.annotation.Guest;
|
import io.company.localhost.common.annotation.Guest;
|
||||||
import io.company.localhost.common.annotation.ParameterCheck;
|
import io.company.localhost.common.annotation.ParameterCheck;
|
||||||
import io.company.localhost.common.annotation.ReqMap;
|
import io.company.localhost.common.annotation.ReqMap;
|
||||||
import io.company.localhost.common.dto.MapDto;
|
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 io.company.localhost.service.TestService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.controller.common;
|
||||||
|
|
||||||
import io.company.localhost.common.annotation.Admin;
|
import io.company.localhost.common.annotation.Admin;
|
||||||
import io.company.localhost.common.annotation.Guest;
|
import io.company.localhost.common.annotation.Guest;
|
||||||
import io.company.localhost.common.annotation.Member;
|
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.AuthUtil;
|
||||||
import io.company.localhost.utils.SessionListener;
|
import io.company.localhost.utils.SessionListener;
|
||||||
import io.company.localhost.vo.MemberVo;
|
import io.company.localhost.vo.MemberVo;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.mapper;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.mapper;
|
||||||
|
|
||||||
import io.company.localhost.common.dto.MapDto;
|
import io.company.localhost.common.dto.MapDto;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.proc;
|
||||||
|
|
||||||
public class sample {
|
public class sample {
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.service;
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import io.company.localhost.vo.MemberVo;
|
||||||
import java.util.Objects;
|
import lombok.experimental.UtilityClass;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.authentication.AnonymousAuthenticationToken;
|
import org.springframework.security.authentication.AnonymousAuthenticationToken;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
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.core.context.SecurityContextHolder;
|
||||||
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
|
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
|
||||||
|
|
||||||
import io.company.localhost.vo.MemberVo;
|
import java.util.Collection;
|
||||||
import lombok.experimental.UtilityClass;
|
import java.util.Objects;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
|
|
||||||
// 로그인 유저 정보
|
// 로그인 유저 정보
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
|
||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class CamelUtil {
|
public class CamelUtil {
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
|
||||||
|
|
||||||
// try-catch 시 error 메시지 처리용
|
// try-catch 시 error 메시지 처리용
|
||||||
// System.out.println(ExceptionUtil.messageTrace(t)); 등등
|
// System.out.println(ExceptionUtil.messageTrace(t)); 등등
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
|||||||
@ -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;
|
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.HttpSession;
|
||||||
import jakarta.servlet.http.HttpSessionEvent;
|
import jakarta.servlet.http.HttpSessionEvent;
|
||||||
import jakarta.servlet.http.HttpSessionListener;
|
import jakarta.servlet.http.HttpSessionListener;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
//세션 확인용
|
//세션 확인용
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import org.springframework.web.util.WebUtils;
|
import org.springframework.web.util.WebUtils;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.utils;
|
||||||
|
|
||||||
import io.company.localhost.common.webEnum.WebEnum;
|
import io.company.localhost.common.webEnum.WebEnum;
|
||||||
|
|||||||
@ -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;
|
package io.company.localhost.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|||||||
68
src/main/resources/logback-dev.xml
Normal file
68
src/main/resources/logback-dev.xml
Normal 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>
|
||||||
Loading…
Reference in New Issue
Block a user