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