parent
d95ef0eca8
commit
04f3f7201f
@ -0,0 +1,130 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Slf4j
|
||||
public class EgovYmlProperties {
|
||||
|
||||
// 에러 메시지 상수
|
||||
public static final String ERR_CODE = "EXCEPTION OCCURRED";
|
||||
|
||||
// YAML 파일 경로
|
||||
public static final String GLOBALS_YAML_FILE = "application.yml";
|
||||
|
||||
// 활성 프로파일 설정 (기본값은 "default")
|
||||
private static final String ACTIVE_PROFILE = System.getProperty("spring.profiles.active", "local");
|
||||
|
||||
/**
|
||||
* 인자로 주어진 키에 해당하는 값을 반환한다.
|
||||
* @param keyName String
|
||||
* @return String
|
||||
*/
|
||||
public static String getProperty(String keyName) {
|
||||
try (InputStream baseInputStream = EgovProperties.class.getClassLoader().getResourceAsStream(GLOBALS_YAML_FILE);
|
||||
InputStream profileInputStream = EgovProperties.class.getClassLoader().getResourceAsStream(getProfileYamlFile())) {
|
||||
|
||||
Yaml yaml = new Yaml();
|
||||
|
||||
// 기본 YAML 읽기
|
||||
Map<String, Object> yamlMap = baseInputStream != null ? yaml.load(baseInputStream) : new HashMap<>();
|
||||
|
||||
// 프로파일별 YAML 읽기 (override)
|
||||
if (profileInputStream != null) {
|
||||
Map<String, Object> profileMap = yaml.load(profileInputStream);
|
||||
yamlMap.putAll(profileMap);
|
||||
}
|
||||
|
||||
return getValueFromYamlMap(yamlMap, keyName);
|
||||
} catch (Exception e) {
|
||||
log.error("YAML 읽기 오류: {}", e.getMessage(), e);
|
||||
return ERR_CODE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 중첩된 YAML 구조에서 키로 값을 찾는다.
|
||||
* @param yamlMap Map<String, Object>
|
||||
* @param keyName String
|
||||
* @return String
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private static String getValueFromYamlMap(Map<String, Object> yamlMap, String keyName) {
|
||||
String[] keys = keyName.split("\\.");
|
||||
Object current = yamlMap;
|
||||
for (String key : keys) {
|
||||
if (current instanceof Map) {
|
||||
current = ((Map<String, Object>) current).get(key);
|
||||
} else {
|
||||
return ERR_CODE; // 키 경로가 잘못된 경우
|
||||
}
|
||||
}
|
||||
return Objects.toString(current, ERR_CODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* YAML 파일의 내용을 key-value 형태의 리스트로 반환한다.
|
||||
* @return List<Map<String, String>>
|
||||
*/
|
||||
public static List<Map<String, String>> loadYamlFile() {
|
||||
List<Map<String, String>> keyList = new ArrayList<>();
|
||||
|
||||
try (InputStream baseInputStream = EgovProperties.class.getClassLoader().getResourceAsStream(GLOBALS_YAML_FILE);
|
||||
InputStream profileInputStream = EgovProperties.class.getClassLoader().getResourceAsStream(getProfileYamlFile())) {
|
||||
|
||||
Yaml yaml = new Yaml();
|
||||
|
||||
// 기본 YAML 읽기
|
||||
Map<String, Object> yamlMap = baseInputStream != null ? yaml.load(baseInputStream) : new HashMap<>();
|
||||
|
||||
// 프로파일별 YAML 읽기 (override)
|
||||
if (profileInputStream != null) {
|
||||
Map<String, Object> profileMap = yaml.load(profileInputStream);
|
||||
yamlMap.putAll(profileMap);
|
||||
}
|
||||
|
||||
flattenYamlMap(yamlMap, "", keyList);
|
||||
} catch (Exception e) {
|
||||
log.error("YAML 읽기 오류: {}", e.getMessage(), e);
|
||||
}
|
||||
|
||||
return keyList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 중첩된 YAML 구조를 평탄화하여 key-value 리스트에 추가한다.
|
||||
* @param yamlMap Map<String, Object>
|
||||
* @param parentKey String
|
||||
* @param keyList List<Map<String, String>>
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private static void flattenYamlMap(Map<String, Object> yamlMap, String parentKey, List<Map<String, String>> keyList) {
|
||||
for (Map.Entry<String, Object> entry : yamlMap.entrySet()) {
|
||||
String fullKey = parentKey.isEmpty() ? entry.getKey() : parentKey + "." + entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (value instanceof Map) {
|
||||
flattenYamlMap((Map<String, Object>) value, fullKey, keyList);
|
||||
} else {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put(fullKey, Objects.toString(value, ""));
|
||||
keyList.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 활성화된 프로파일에 해당하는 YAML 파일 이름을 반환한다.
|
||||
* @return String
|
||||
*/
|
||||
private static String getProfileYamlFile() {
|
||||
return "application-" + ACTIVE_PROFILE + ".yml";
|
||||
}
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType=WINDOWS
|
||||
|
||||
#hsql - local hssql \uc0ac\uc6a9\uc2dc\uc5d0 \uc801\uc6a9 (\ub0b4\uc7a5 hsql\uc740 \uc815\ubcf4 \ud544\uc694 \uc5c6\uc74c)
|
||||
Globals.hsql.DriverClassName=net.sf.log4jdbc.DriverSpy
|
||||
Globals.hsql.Url=jdbc:log4jdbc:hsqldb:hsql://127.0.0.1/sampledb
|
||||
Globals.hsql.UserName=sa
|
||||
Globals.hsql.Password=
|
||||
|
||||
logging.rollingpolicy.maxHistory=2
|
||||
|
||||
# File store Path
|
||||
Globals.fileStorePath=./files
|
||||
@ -0,0 +1,15 @@
|
||||
spring:
|
||||
config:
|
||||
activate:
|
||||
on-profile: dev
|
||||
|
||||
# 운영서버 타입(WINDOWS, UNIX)
|
||||
Globals:
|
||||
OsType: WINDOWS
|
||||
# File store Path
|
||||
fileStorePath: ./files
|
||||
pageUnit: 20
|
||||
pageSize: 20
|
||||
|
||||
logging.rollingpolicy.maxHistory: 2
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
spring:
|
||||
config:
|
||||
activate:
|
||||
on-profile: dev
|
||||
|
||||
# 운영서버 타입(WINDOWS, UNIX)
|
||||
Globals:
|
||||
OsType: WINDOWS
|
||||
# File store Path
|
||||
fileStorePath: ./files
|
||||
pageUnit: 20
|
||||
pageSize: 20
|
||||
|
||||
logging.rollingpolicy.maxHistory: 2
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType=LINUX
|
||||
|
||||
#hsql - local hssql \uc0ac\uc6a9\uc2dc\uc5d0 \uc801\uc6a9 (\ub0b4\uc7a5 hsql\uc740 \uc815\ubcf4 \ud544\uc694 \uc5c6\uc74c)
|
||||
Globals.hsql.DriverClassName=net.sf.log4jdbc.DriverSpy
|
||||
Globals.hsql.Url=jdbc:log4jdbc:hsqldb:hsql://127.0.0.1/sampledb
|
||||
Globals.hsql.UserName=sa
|
||||
Globals.hsql.Password=
|
||||
|
||||
logging.rollingpolicy.maxHistory=90
|
||||
|
||||
# File store Path
|
||||
Globals.fileStorePath=./files
|
||||
@ -0,0 +1,14 @@
|
||||
spring:
|
||||
config:
|
||||
activate:
|
||||
on-profile: prod
|
||||
|
||||
# 운영서버 타입(WINDOWS, UNIX)
|
||||
Globals:
|
||||
OsType: LINUX
|
||||
# File store Path
|
||||
fileStorePath: ./files
|
||||
pageUnit: 20
|
||||
pageSize: 20
|
||||
|
||||
logging.rollingpolicy.maxHistory: 90
|
||||
@ -1,144 +0,0 @@
|
||||
spring.profiles.active=dev
|
||||
spring.config.use-legacy-processing=true
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : \uC2DC\uC2A4\uD15C
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 1. key = value \uAD6C\uC870\uC785\uB2C8\uB2E4.
|
||||
# 2. key\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uD3EC\uD568\uBD88\uAC00, value\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uAC00\uB2A5
|
||||
# 3. key\uAC12\uC73C\uB85C \uD55C\uAE00\uC744 \uC0AC\uC6A9\uBD88\uAC00, value\uAC12\uC740 \uD55C\uAE00\uC0AC\uC6A9\uC774 \uAC00\uB2A5
|
||||
# 4. \uC904\uC744 \uBC14\uAFC0 \uD544\uC694\uAC00 \uC788\uC73C\uBA74 '\'\uB97C \uB77C\uC778\uC758 \uB05D\uC5D0 \uCD94\uAC00(\uB9CC\uC57D '\'\uBB38\uC790\uB97C \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB294 '\\'\uB97C \uC0AC\uC6A9)
|
||||
# 5. Windows\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '\\' or '/' ('\' \uC0AC\uC6A9\uD558\uBA74 \uC548\uB428)
|
||||
# 6. Unix\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '/'
|
||||
# 7. \uC8FC\uC11D\uBB38 \uCC98\uB9AC\uB294 #\uC0AC\uC6A9
|
||||
# 8. value\uAC12 \uB4A4\uC5D0 \uC2A4\uD398\uC774\uC2A4\uAC00 \uC874\uC7AC\uD558\uB294 \uACBD\uC6B0 \uC11C\uBE14\uB9BF\uC5D0\uC11C \uCC38\uC870\uD560\uB54C\uB294 \uC5D0\uB7EC\uBC1C\uC0DD\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C trim()\uD558\uAC70\uB098 \uB9C8\uC9C0\uB9C9 \uACF5\uBC31\uC5C6\uC774 properties \uAC12\uC744 \uC124\uC815\uD560\uAC83
|
||||
#-----------------------------------------------------------------------
|
||||
spring.application.name=xit-egov-springboot
|
||||
|
||||
# G4C \uC5F0\uACB0\uC6A9 IP (localhost)
|
||||
Globals.LocalIp=127.0.0.1
|
||||
|
||||
# DB\uC11C\uBC84 \uD0C0\uC785(hsql,mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
|
||||
Globals.DbType=mysql
|
||||
|
||||
# DB \uC811\uADFC \uC815\uBCF4
|
||||
|
||||
#hsql - local hssql \uC0AC\uC6A9\uC2DC\uC5D0 \uC801\uC6A9 (\uB0B4\uC7A5 hsql\uC740 \uC815\uBCF4 \uD544\uC694 \uC5C6\uC74C)
|
||||
Globals.hsql.DriverClassName=net.sf.log4jdbc.DriverSpy
|
||||
Globals.hsql.Url=jdbc:log4jdbc:hsqldb:hsql://127.0.0.1/sampledb
|
||||
Globals.hsql.UserName=sa
|
||||
Globals.hsql.Password=
|
||||
|
||||
# mysql
|
||||
Globals.mysql.DriverClassName=net.sf.log4jdbc.DriverSpy
|
||||
Globals.mysql.Url=jdbc:log4jdbc:mysql://211.119.124.9:4407/egov
|
||||
Globals.mysql.UserName=egov
|
||||
Globals.mysql.Password=xit1807
|
||||
|
||||
#oracle
|
||||
Globals.oracle.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||
Globals.oracle.Url=jdbc:oracle:thin:@127.0.0.1:1521:egovfrm
|
||||
Globals.oracle.UserName=
|
||||
Globals.oracle.Password=
|
||||
|
||||
# \uAD8C\uD55C \uC778\uC99D\uBC29\uC2DD(dummy, session, security) - \uC0AC\uC6A9\uC790\uC758 \uB85C\uADF8\uC778\uC2DC \uC778\uC99D \uBC29\uC2DD\uC744 \uACB0\uC815\uD568
|
||||
# dummy : \uB354\uBBF8 \uBC29\uC2DD\uC73C\uB85C \uC0AC\uC6A9\uC790 \uAD8C\uD55C\uC744 \uC778\uC99D\uD568
|
||||
# session : \uC138\uC158 \uBC29\uC2DD\uC73C\uB85C \uC0AC\uC6A9\uC790 \uAD8C\uD55C\uC744 \uC778\uC99D\uD568
|
||||
# security : spring security \uBC29\uC2DD\uC73C\uB85C \uC0AC\uC6A9\uC790 \uAD8C\uD55C\uC744 \uC778\uC99D\uD568
|
||||
Globals.Auth = session
|
||||
|
||||
# \uB85C\uADF8\uC778 \uC778\uC99D \uC81C\uD55C(login authentication limit)
|
||||
# (\uC0AC\uC6A9 \uC5EC\uBD80 \uC124\uC815\uAC12 : true, false)
|
||||
Globals.login.Lock = true
|
||||
# -\uC778\uC99D \uC81C\uC2DC\uB3C4 \uD69F\uC218
|
||||
Globals.login.LockCount = 5
|
||||
|
||||
# \uBE44\uBC00\uBC88\uD638 \uC720\uD6A8\uAE30\uAC04 \uC124\uC815
|
||||
Globals.ExpirePwdDay = 180
|
||||
|
||||
# MainPage Setting
|
||||
#Globals.MainPage = /cmm/main/mainPage.do
|
||||
Globals.MainPage = /EgovContent.do
|
||||
|
||||
|
||||
# Page Config
|
||||
Globals.pageUnit=10
|
||||
Globals.pageSize=10
|
||||
|
||||
# File Config
|
||||
Globals.posblAtchFileSize=5242880
|
||||
Globals.fileStorePath=./files
|
||||
Globals.addedOptions=false
|
||||
|
||||
# \uD30C\uC77C \uD655\uC7A5\uC790 \uD654\uC774\uD2B8\uB9AC\uC2A4\uD2B8(\uD5C8\uC6A9\uBAA9\uB85D) : \uD30C\uC77C \uD655\uC7A5\uC790\uB97C (.)\uACFC \uD568\uAED8 \uC5F0\uC774\uC5B4\uC11C \uC0AC\uC6A9\uD558\uBA70 (.)\uB85C \uC2DC\uC791\uD55C\uB2E4.
|
||||
Globals.fileUpload.Extensions.Images = .gif.jpg.jpeg.png
|
||||
Globals.fileUpload.Extensions = .gif.jpg.jpeg.png.xls.xlsx
|
||||
|
||||
# Access-Control-Allow-Origin
|
||||
Globals.Allow.Origin = http://localhost:3000
|
||||
|
||||
#\uC554\uD638\uD654\uC11C\uBE44\uC2A4 \uC54C\uACE0\uB9AC\uC998 \uD0A4
|
||||
#\uC8FC\uC758 : \uBC18\uB4DC\uC2DC \uAE30\uBCF8\uAC12 "egovframe"\uC744 \uB2E4\uB978\uAC83\uC73C\uB85C \uBCC0\uACBD\uD558\uC5EC \uC0AC\uC6A9\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
Globals.crypto.algoritm = egovframe
|
||||
|
||||
#JWT secret key
|
||||
#\uC8FC\uC758 : \uBC18\uB4DC\uC2DC \uAE30\uBCF8\uAC12 "egovframe"\uC744 \uB2E4\uB978\uAC83\uC73C\uB85C \uBCC0\uACBD\uD558\uC5EC \uC0AC\uC6A9\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4
|
||||
Globals.jwt.secret = egovframe
|
||||
|
||||
#server.servlet.context-path=/sht_boot_web
|
||||
server.servlet.context-path=/
|
||||
server.port = 8082
|
||||
server.servlet.session.timeout=3600
|
||||
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
|
||||
|
||||
#swaggerdoc
|
||||
springdoc.version=v4.2.0
|
||||
springdoc.packages-to-scan=egovframework
|
||||
springdoc.swagger-ui.tags-sorter=alpha
|
||||
springdoc.swagger-ui.operations-sorter=alpha
|
||||
springdoc.swagger-ui.doc-expansion=none
|
||||
springdoc.api-docs.path=/v3/api-docs
|
||||
springdoc.api-docs.groups.enabled=true
|
||||
springdoc.cache.disabled=true
|
||||
|
||||
#Sns
|
||||
Sns.naver.clientId=YOUR_CLIENT_ID
|
||||
Sns.naver.clientSecret=YOUR_CLIENT_SECRET
|
||||
Sns.naver.callbackUrl=http://localhost:3000/login/naver/callback
|
||||
Sns.kakao.clientId=YOUR_CLIENT_ID
|
||||
Sns.kakao.callbackUrl=http://localhost:3000/login/kakao/callback
|
||||
|
||||
spring.mvc.view.prefix=/WEB-INF/jsp/
|
||||
spring.mvc.view.suffix=.jsp
|
||||
|
||||
spring.messages.basename=classpath*:/egovframework/message/com/message-common, classpath*:/egovframework/message/com/**/message*, classpath*:/org/egovframe/rte/fdl/idgnr/messages/idgnr, classpath*:/org/egovframe/rte/fdl/property/messages/properties
|
||||
|
||||
# logging level
|
||||
#Logging
|
||||
#file path\uC758 default \uAC12\uC740 \uD504\uB85C\uC81D\uD2B8 root \uACBD\uB85C\uC774\uBBC0\uB85C \uC6D0\uD558\uC2DC\uB294 \uACBD\uB85C\uB85C \uBCC0\uACBD\uD558\uC5EC \uC0AC\uC6A9\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
# ${LOG_FILE}, ${LOG_PATH}
|
||||
logging.file.path=d:/data/xit-egov/logs
|
||||
logging.file.name=${logging.file.path}/${spring.application.name}
|
||||
logging.logback.rollingpolicy.file-name-pattern=${logging.file.name}.%d{yyyy-MM-dd}.%i.gz
|
||||
logging.logback.rollingpolicy.max-file-size=10MB
|
||||
logging.logback.rollingpolicy.max-history=7
|
||||
#logging.register-shutdown-hook=true
|
||||
|
||||
logging.root.level=DEBUG
|
||||
|
||||
logging.level.sql=DEBUG
|
||||
logging.level.jdbc.resultset=OFF
|
||||
logging.level.jdbc.audit=OFF
|
||||
logging.level.jdbc.only=OFF
|
||||
|
||||
logging.level.org.springframework=DEBUG
|
||||
logging.level.org.hibernate.validator.internal=INFO
|
||||
|
||||
logging.level.egovframework=${logging.root.level}
|
||||
logging.level.org.egovframe=${logging.root.level}
|
||||
|
||||
# HEADER, COOKIE
|
||||
app.auth.save.type=HEADER
|
||||
|
||||
|
||||
@ -0,0 +1,157 @@
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : 시스템
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 1. key = value 구조입니다.
|
||||
# 2. key값은 공백문자를 포함불가, value값은 공백문자를 가능
|
||||
# 3. key값으로 한글을 사용불가, value값은 한글사용이 가능
|
||||
# 4. 줄을 바꿀 필요가 있으면 '\'를 라인의 끝에 추가(만약 '\'문자를 사용해야 하는 경우는 '\\'를 사용)
|
||||
# 5. Windows에서의 디렉토리 표시 : '\\' or '/' ('\' 사용하면 안됨)
|
||||
# 6. Unix에서의 디렉토리 표시 : '/'
|
||||
# 7. 주석문 처리는 #사용
|
||||
# 8. value값 뒤에 스페이스가 존재하는 경우 서블릿에서 참조할때는 에러발생할 수 있으므로 trim()하거나 마지막 공백없이 properties 값을 설정할것
|
||||
#-----------------------------------------------------------------------
|
||||
server:
|
||||
servlet:
|
||||
context-path: /
|
||||
session:
|
||||
timeout: 3600
|
||||
port: 8082
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: xit-egov-springboot
|
||||
profiles:
|
||||
active: @spring.profiles.active@
|
||||
config:
|
||||
use-legacy-processing: true
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant_path_matcher
|
||||
view:
|
||||
prefix: /WEB-INF/jsp/
|
||||
suffix: .jsp
|
||||
messages:
|
||||
basename: classpath*:/egovframework/message/com/message-common, classpath*:/egovframework/message/com/**/message*, classpath*:/org/egovframe/rte/fdl/idgnr/messages/idgnr, classpath*:/org/egovframe/rte/fdl/property/messages/properties
|
||||
|
||||
Globals:
|
||||
# G4C 연결용 IP (localhost)
|
||||
LocalIp: 127.0.0.1
|
||||
# DB 서버 타입 (hsql, mysql, oracle, altibase, tibero) - datasource 및 sqlMap 파일 지정에 사용됨
|
||||
DbType: mysql
|
||||
|
||||
# DB 접근 정보
|
||||
hsql:
|
||||
DriverClassName: net.sf.log4jdbc.DriverSpy
|
||||
Url: jdbc:log4jdbc:hsqldb:hsql://127.0.0.1/sampledb
|
||||
UserName: sa
|
||||
Password: ""
|
||||
mysql:
|
||||
DriverClassName: net.sf.log4jdbc.DriverSpy
|
||||
Url: jdbc:log4jdbc:mysql://211.119.124.9:4407/egov
|
||||
UserName: egov
|
||||
Password: xit1807
|
||||
oracle:
|
||||
DriverClassName: oracle.jdbc.driver.OracleDriver
|
||||
Url: jdbc:oracle:thin:@127.0.0.1:1521:egovfrm
|
||||
UserName: ""
|
||||
Password: ""
|
||||
|
||||
# 권한 인증방식 (dummy, session, security)
|
||||
Auth: security
|
||||
|
||||
# 로그인 인증 제한
|
||||
login:
|
||||
Lock: true # 인증 제한 사용 여부 (true, false)
|
||||
LockCount: 5 # 인증 제한 횟수
|
||||
|
||||
ExpirePwdDay: 180 # 비밀번호 유효 기간 (일)
|
||||
|
||||
# Main Page 설정
|
||||
MainPage: /EgovContent.do
|
||||
#MainPage: /cmm/main/mainPage.do
|
||||
|
||||
# 페이징 설정
|
||||
pageUnit: 10
|
||||
pageSize: 10
|
||||
|
||||
# 파일 설정
|
||||
posblAtchFileSize: 5242880
|
||||
fileStorePath: ./files
|
||||
addedOptions: false
|
||||
|
||||
# 파일 확장자 허용 목록 (화이트리스트)
|
||||
fileUpload.Extensions: .gif.jpg.jpeg.png.xls.xlsx
|
||||
fileUpload.Extensions.Images: .gif.jpg.jpeg.png
|
||||
|
||||
# Access-Control-Allow-Origin
|
||||
Allow:
|
||||
Origin: http://localhost:3000
|
||||
|
||||
# 암호화 서비스 알고리즘 키 (egovframe 기본값을 수정하여 사용할 것)
|
||||
crypto:
|
||||
algoritm: egovframe
|
||||
|
||||
# JWT secret key (egovframe 기본값 수정 필요)
|
||||
jwt:
|
||||
secret: egovframe
|
||||
|
||||
# swagger 문서 구성
|
||||
springdoc:
|
||||
version: v4.3.0
|
||||
packages-to-scan: egovframework
|
||||
swagger-ui:
|
||||
tags-sorter: alpha
|
||||
operations-sorter: alpha
|
||||
doc-expansion: none
|
||||
api-docs:
|
||||
path: /v3/api-docs
|
||||
groups:
|
||||
enabled: true
|
||||
cache:
|
||||
disabled: true
|
||||
|
||||
# SNS 설정
|
||||
Sns:
|
||||
naver:
|
||||
clientId: YOUR_CLIENT_ID
|
||||
clientSecret: YOUR_CLIENT_SECRET
|
||||
callbackUrl: http://localhost:3000/login/naver/callback
|
||||
kakao:
|
||||
clientId: YOUR_CLIENT_ID
|
||||
callbackUrl: http://localhost:3000/login/kakao/callback
|
||||
|
||||
# 로깅 설정
|
||||
# file path의 default 값은 프로젝트 root 경로이므로 원하시는 경로로 변경하여 사용하시기 바랍니다.
|
||||
# ${LOG_FILE}, ${LOG_PATH}
|
||||
logging:
|
||||
file:
|
||||
path: d:/data/xit-egov/logs
|
||||
name: ${logging.file.path}/${spring.application.name}
|
||||
logback:
|
||||
rollingpolicy:
|
||||
file-name-pattern: ${logging.file.name}.%d{yyyy-MM-dd}.%i.gz
|
||||
max-file-size: 10MB
|
||||
max-history: 7
|
||||
root:
|
||||
level: DEBUG
|
||||
level:
|
||||
sql: DEBUG
|
||||
jdbc:
|
||||
resultset: OFF
|
||||
audit: OFF
|
||||
only: OFF
|
||||
org:
|
||||
springframework: DEBUG
|
||||
hibernate:
|
||||
validator:
|
||||
internal: INFO
|
||||
egovframework: ${logging.root.level}
|
||||
org.egovframe: ${logging.root.level}
|
||||
|
||||
# HEADER, COOKIE 설정
|
||||
app:
|
||||
auth:
|
||||
save:
|
||||
type: HEADER
|
||||
Loading…
Reference in New Issue