메뉴
#DAILY & MOMENTS

Record Of A Day

하루의 소중한 순간을 기록하고, 커플 다이어리와 할 일을 스마트하게 관리해보세요.

🔥 트렌딩 아티클

회원들이 공유한 따끈따끈한 최신 이야기입니다.

전체보기
Default Thumbnail
#일상

application.properties (met)

// 여[min-s-iruda-01@MIN-T-MDMAP-01 classes]$ cat application.properties mdosa.product.code= meta # Setting Repository : oracle, postgresql mdosa.datasource.main.dbms= postgresql mdosa.datasource.main.driverClass= org.postgresql.Driver mdosa.datasource.main.url= jdbc:postgresql://10.102.208.90:5432/MDM_UAT mdosa.datasource.main.user= min_ds_iruda mdosa.datasource.main.password= VkJJdhLHpAWR)(71 # iruda - 향후 이 모듈을 제거(해당 옵션들을 삭제)할 수 있도록 IRUDA 옵션을 추후에 수정할 예정입니다. # iruda - We plan to revise the IRUDA options later so that this module can be removed (and the options deleted) in the future. spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration,org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration management.health.neo4j.enabled=false management.elastic.metrics.export.enabled=false mdosa.file.upload-location.path= /metastream/uploaded_files mdosa.file.upload-location.use-yn= false # JNDI 사용시 아래 옵션을 주석 해제하여 사용할것 #mdosa.datasource.main.jndi.enabled: true #mdosa.datasource.main.jndi.name: jndi/iruda #spring.jmx.enabled: false # 접속 유저와 사용할 스키마가 다른 경우 설정 ## 다르지 않다면 "mdosa.datasource.main.user" 옵션 값과 "mdosa.datasource.main.hikari.connection-init-sql" 옵션의 스키마값이 동일하도록 작성 ### Oracle - "mdosa.datasource.main.hikari.connection-init-sql: ALTER SESSION SET CURRENT_SCHEMA = 스키마값" ### Postgresql - "mdosa.datasource.main.hikari.connection-init-sql: SET search_path TO 스키마값, public" #mdosa.datasource.main.hikari.connection-init-sql: ALTER SESSION SET CURRENT_SCHEMA = iruda4 mdosa.session.repository.forceFetchAlways: false mdosa.datasource.main.hikari.connection-timeout: 30000 mdosa.datasource.main.hikari.maximum-pool-size: 10 #mdosa.stomp.url=ws://localhost:8089/websocket mdosa.redis.host: localhost mdosa.redis.port: 6379 # 세션 타입에 따른 시간 기준: old-jdbc(miliseconds) 30분 - 1800000 | jdbc,redis (seconds) 30분 - 1800 mdosa.session.repository.defaultMaxInactiveInterval: 1800 # test.hello.kr.net -> .kr.net 상위 도메인 추출 mdosa.session.cookieSerializer.domainNamePattern: ^.+?\\.(\\w+\\.[a-z]+)$ # storage-type : old-jdbc, jdbc, redis mdosa.session.storage-type: jdbc mdosa.session.remote-enabled: true # 이루다 admin service 에 연관되어 제공되는 annotation 기능과 관련된 모듈들이 연관되어 false 처리 customizer.property-provider.modeUse: false # iruda passwordService 를 위한 암호 옵션 정보 #mdosa.security.passwordEncryptType=PLAIN #mdosa.security.password.request-body-encryption-type=AES #mdosa.security.password.request-body-encryption-key=123456789 #mdosa.security.password.mode-request-body-encryption-time-key-limit-time=false #mdosa.security.password.request-body-encryption-time-key-limit-time=20000 #mdosa.security.password.value-encryption-type=AES #mdosa.security.password.value-encryption-key=123456789 #mdosa.security.password.value-encryption-mode-salt=false #mdosa.security.password.value-encryption-salt=123456789 #mdosa.security.password.persistence-user-encryption-type=SHA256 #mdosa.security.password.persistence-user-encryption-mode-salt=false #mdosa.security.password.persistence-user-encryption-salt=123456789 #mdosa.security.password.persistence-server-encryption-type=PLAIN #mdosa.security.password.persistence-server-encryption-key=123456789 #mdosa.security.password.patterns[0]=^((?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\W]).{8,20})$ #mdosa.security.password.duplicateAllowCnt=0 #mdosa.security.password.continuousAllowCnt=0 #mdosa.security.password.adminPasswordChk=true #mdosa.security.password.chgPasswordRedirect=${mdosa.security.main.page} #mdosa.security.countBadCredentials=true #mdosa.security.usernameParameter=${security.usernameParameter} #mdosa.security.passwordParameter=${security.passwordParameter} # =========================== # Encryption (AES256/GCM/NoPadding) # =========================== mdosa.security.encryption.secret=${AES_SECRET:test} mdosa.security.encryption.key-spec.secret=${AES_KEY_SPEC_SECRET:test} mdosa.security.encryption.key-spec.salt=${AES_KEY_SPEC_SALT:test} mdosa.security.encryption.key-spec.iterations=${AES_KEY_SPEC_ITERATIONS:310000} # =========================== # Password (SHA256 | SHA512 | BCRYPT | PBKDF2 | ARGON2) # =========================== mdosa.security.password.type=SHA256 # SHA256 mdosa.security.password.encoders.SHA256.secret=${SHA256_SECRET:test} mdosa.security.password.encoders.SHA256.salt-length=16 mdosa.security.password.encoders.SHA256.iterations=310000 # SHA512 mdosa.security.password.encoders.SHA512.secret=${SHA512_SECRET:test} mdosa.security.password.encoders.SHA512.salt-length=16 mdosa.security.password.encoders.SHA512.iterations=310000 # BCRYPT mdosa.security.password.encoders.BCRYPT.strength=10 # PBKDF2 mdosa.security.password.encoders.PBKDF2.secret=${PBKDF2_SECRET:test} mdosa.security.password.encoders.PBKDF2.salt-length=16 mdosa.security.password.encoders.PBKDF2.iterations=310000 mdosa.security.password.encoders.PBKDF2.algorithm=PBKDF2WithHmacSHA512 # ARGON2 mdosa.security.password.encoders.ARGON2.salt-length=16 mdosa.security.password.encoders.ARGON2.hash-length=32 mdosa.security.password.encoders.ARGON2.iterations=2 mdosa.security.password.encoders.ARGON2.memory=16384 mdosa.security.password.encoders.ARGON2.parallelism=1 [min-s-iruda-01@MIN-T-MDMAP-01 classes]$요

Default Thumbnail
#일상

application-site.yml (ird)

// 여[min-s-iruda-01@MIN-T-MDMAP-01 classes]$ cat application-site.yml ################################################## # 라이센스 설정 ################################################## datastreams: product: name: iruda version: ${IRUDA_LICENSE_VERSION:5.0} license: # 경로는 / 로 끝나야함 # 제품 License 파일 설치 경로 # path: ${IRUDA_LICENSE_PATH:/home/dggrp/license/} path: ${IRUDA_LICENSE_PATH:/home/min-s-iruda-01/License/iruda/} # License 체크시 로그 활성 (default=false) false=로그 미사용 / true=로그사용 mode-log-use: false licenser: # 경로는 / 로 끝나야함 # LICENSE_HOME 강제 지정 경로 # 환경변수 작동하지 않을때 메타를 통해 강제지정 # (선택기능) WINDOWS 환경아닌경우 경로 뒤에 ?/bin/bash 형태로 쉘 경로 지정 가능 # 예시) /home/meta/license/?/bin/bash -> /home/meta/license/ = 라이센스 경로, /bin/bash = 쉘 경로 # path: ${IRUDA_LICENSER_PATH:/home/dggrp/license/} path: ${IRUDA_LICENSER_PATH:/home/min-s-iruda-01/License/} ######################### 파일업로드 설정 spring: servlet: ##### MultipartFile 설정 ==> 52428800 = 50MB / 2097152000 = 2GB multipart: max-file-size: 2097152000 # MdosaProperties.groovy 에 매핑이 되야하므로 숫자만 설정할것... (bytes) - 52428800bytes = 50MB max-request-size: -1 # MdosaProperties.groovy 에 매핑이 되야하므로 숫자만 설정할것... (bytes) location: ${IRUDA_FILE_UPLOAD_TEMP_PATH:D:\\iruda5.1.x\\temp} # 파일 업로드시 임시로 저장할 경로 # location: C:\\iruda_data mail: host: smtp.gmail.com # 회사 메일 서버 주소 port: 587 # 서버 포트 (보통 25, 465, 587 중 하나) username: [email protected] # 발송 계정 password: mefu uqaz jyhk qwkg # 발송 계정 비밀번호 properties: mail: smtp: auth: true # 사내 서버가 인증을 요구하는지 확인 필요 starttls: enable: true # TLS 보안 연결 여부 #################################################################################################### # # [OPENSEARCH] # #################################################################################################### opensearch: hosts: - ${OPENSEARCH_URL:10.102.176.90:9200} scheme: http username: admin password: StrongPassword123! connection-timeout: 1000 response-timeout: 30000 max-connection-total: 200 max-connection-per-route: 50 ssl: enabled: false trust-store-type: jks # jks 또는 PKCS12 trust-store-path: D:\\OPEN_SEARCH\\opensearch-truststore.jks trust-store-password: changeit trust-all: false management: elastic: metrics: tags: instanceName: ${IRUDA_METRICS_INSTANCE_NAME:IRUDA v5.0} # 인스턴스 이름 태그 설정 export: enabled: true host: ${opensearch.scheme}://${OPENSEARCH_URL:10.102.176.90:9200} index: "micrometer-metrics" index-date-format: "yyyy-MM-ww" step: ${IRUDA_METRICS_STEP:30s} connect-timeout: ${IRUDA_METRICS_CONNECT_TIMEOUT:10s} max-buckets: ${IRUDA_METRICS_MAX_BUCKETS:200000} retention-days: ${METRICS_ILM_RETENTION_DAYS:30} metrics-name: - "process_cpu_usage" - "jvm_memory_used" - "disk_free" - "disk_total" - "jvm_memory_max" ################################################## # # [IRUDA] Options # ################################################## mdosa: datasource: main: dbms: ${IRUDA_DATASOURCE_DBMS:postgresql} driverClass: ${IRUDA_DATASOURCE_DRIVER_CLASS:org.postgresql.Driver} url: ${IRUDA_DATASOURCE_URL:jdbc:postgresql://10.102.208.90:5432/MDM_UAT} user: ${IRUDA_DATASOURCE_USER:min_ds_iruda} password: ${IRUDA_DATASOURCE_PASSWORD:VkJJdhLHpAWR)(71} # jndi.name: jdbc/iruda hikari: connection-timeout: 30000 maximum-pool-size: 10 ################################################## ### Plugin ################################################## plugin: modeUse: ${IRUDA_PLUGIN_USE_YN:true} option: ########## MetaStream metastream: modeUse: ${IRUDA_META_USE_YN:true} functions: [ user ] web-url: ${IRUDA_META_WEB_URL:https://dev-mdmdw.inspire.local/meta} api-url: ${IRUDA_META_API_URL:http://10.102.176.90:8380/meta} #api-url: ${IRUDA_META_API_URL:https://dev-mdmdw.inspire.local/meta} api-timeout-connection: 5000 api-timeout-read: 5000 data: { ##### 메타 유저 연계 방식 <api(default), event(api 사용 불가시), none(사용안함)> syncUser: api, ##### 업무관리에서 업무 및 사용자 신규, 수정시 메타쪽 시스템, 업무구분, 사용자업무 데이터 추가 등록 (업무관리 삭제 불가) syncBusiness: true, ##### 통합로그 API 옵션 all-log: { url: /api/log/selectMetaLog } } ########## Qu qualitystream: modeUse: ${IRUDA_QUALITY_USE_YN:false} functions: [ ] web-url: ${IRUDA_QUALITY_WEB_URL:https://dev-mdmdw.inspire.local/quality/main#integrationStatistics} #api-url: ${IRUDA_QUALITY_API_URL:https://dev-mdmdw.inspire.local/quality/main#integrationStatistics} api-url: ${IRUDA_QUALITY_API_URL:http://10.102.176.90:8480/quality/main#integrationStatistics} api-timeout-connection: 10000 api-timeout-read: 10000 data: { } ########## Qtrack qtrack: # modeUse: ${IRUDA_QTRACK_USE_YN:false} modeUse: false functions: [ ] conetxt-path: qtrack web-url: ${IRUDA_QTRACK_WEB_URL:http://localhost:8080/qtrack} api-url: ${IRUDA_QTRACK_API_URL:http://localhost:8080/qtrack} api-timeout-connection: 10000 api-timeout-read: 10000 data: { ##### Qtrack 버전에 따라 IRUDA와 데이터 동기화 연동 API 연계 방식 분기 (2,3) version: 3 } ########## Master masterstream: modeUse: ${IRUDA_MASTER_USE_YN:false} functions: [ ] conetxt-path: mdm web-url: ${IRUDA_MASTER_WEB_URL:https://dev-mdmdw.inspire.local/mdm} api-url: ${IRUDA_MASTER_WEB_URL:http://10.102.176.90:8280/mdm} #api-url: ${IRUDA_MASTER_WEB_URL:https://dev-mdmdw.inspire.local/mdm} api-timeout-connection: 10000 api-timeout-read: 10000 data: { ##### 통합로그 API 옵션 all-log: { url: /api/iruda/getLogList } } ########## BizData bizdata: modeUse: false #modeUse: ${IRUDA_BIZDATA_USE_YN:false} functions: [ ] conetxt-path: bizdata web-url: ${IRUDA_BIZDATA_WEB_URL:http://localhost:8080/bizdata} api-url: ${IRUDA_BIZDATA_API_URL:http://localhost:8080/bizdata} api-timeout-connection: 10000 api-timeout-read: 10000 data: { } ########## SuperQuery superquery: modeUse: ${IRUDA_SUPERQUERY_USE_YN:false} functions: [ ] conetxt-path: squery web-url: ${IRUDA_SUPERQUERY_WEB_URL:http://localhost:8080/query-browser} api-url: ${IRUDA_SUPERQUERY_API_URL:http://localhost:8080/} api-timeout-connection: 10000 api-timeout-read: 10000 api-key: default-dev-key-change-in-production data: { ##### 통합로그 API 옵션 all-log: { url: /api/iruda/getLogList } } ### Version 및 UI 로그인 페이지 버전 표기 version: 5.0 ### 언어설정 i18n: ##### ※ 빈값으로 설정하면 ==> Browser Locale 을 최우선순위로 한다. default: ko languages: [ ko, en ] locales: [ ko, en ] # (true/false) true일 경우 PUT/DELETE/PATCH Request Method가 모두 POST로 변경됨. emulateHTTP: false # 관리자 역할코드 변경시 수정 필요 (화면 버튼 제어등) auth: sys-adm: - SMGR # 알림 API Key 설정 api-key: alarm: value: datastreams use-yn: true ################################################## # 세션 # - 만료시간 millisecond (30분 = 1800000, 10분 = 600000)-old jdbc, second (30분 1800) -jdbc, redis # type: old-jdbc - iruda3 떼 세션 방식(deprecated), jdbc, redis # remote-enabled: ################################################## session: remote-enabled: true storage-type: "jdbc" repository: defaultMaxInactiveInterval: 1800 forceFetchAlways: false ######################### Session Cookie # cookieName: Session을 보관할 Cookie 명 # cookiePath: ? # domainName: 특정 도메인에서의 쿠키만 접속가능 # domainNamePattern: 특정 패턴의 도메인에서의 쿠키만 접속가능 (단, domainName설정시 DomainNamePattern은 작동하지 않는다.) ######################### cookieSerializer: cookieName: IRUDASESSIONID cookiePath: "/" domainName: "" domainNamePattern: "^.+?\\.(\\w+\\.[a-z]+)$" sameSite: "Lax" useBsse64Encoding: false useSecureCookie: false ################################ # 동시 접속 설정 Session 계정당 확인 ################################ concurrentSession: maxSessionSize: -1 modeExceptionUse: false exceptionType: "FORCE_LOGOUT_ALL" admin: "smgr" redirectUrl: "/login" ################################################## # 모듈 ################################################## module: option: engine-search-autocomplete: true ################################################## # 추가 설정파일 ################################################## additional-option-files: ################################################## # 로그인 ################################################## security: csrf: enable: true ignore: # 형식: "패턴" 또는 "METHOD_패턴" (예: POST_/api/webhook/**) - /websocket/** - /monitor/** - /remoting/** - /post/upload/image - /internal/file/** - /iruda-dev/** - POST_/login/password-reset/** cors: enabled: false origins: > http://localhost:18080 patterns: > * methods: > GET, POST headers: > * use-credentials: true whiteList: > http://localhost, http://127.0.0.1 IpAccessLimit: enabled: true # 필터 활성화 여부 login-only: true # true=login-endpoints만 체크 / false=모든 요청 체크 login-endpoints: # 로그인 엔드포인트 목록 - /login - ${mdosa.security.optional-auth.otp.pre-login-url} - ${mdosa.security.optional-auth.otp.login-url} allow-ips: # 시스템 허용 IP/CIDR, 비어있거나 * 이면 전체 허용 # - 192.168.1.1 - '*' # 전체 허용 redirect: /login # 사용자 레벨 차단 시 이동할 URL allow-urls: # IP 체크 제외 URL, 비어있거나 * 이면 전체 허용 - /home/myInfo - /home/init # - '*' # 전체 허용 ########## LOGIN password: adminPasswordChk: false # 중복 몇 회 이상, 연속적인 문자 몇 회 이상 일 경우 검증 실패> 3 이상만 가능 duplicateAllowCnt: 0 continuousAllowCnt: 0 password-history-cnt: 2 # 패스워드 변경 내역 저장 개수 allow-id: true mail-domain: datastreams.co.kr pwd-reset-mail-template: thymeleaf/pwd-reset-template verification-code-mail-template: thymeleaf/verification-code-template system-user: smgr use-password-initial-mail: false # use-inital-random-password: false init-redirect-login-url: https://dev-mdmdw.inspire.local/iruda/login login: page: /login failedPage: /login loginFailureCnt: 5 # 5번의 접속 실패 제한 횟수 offlineLimitDay: 90 # 단위 : 일 - 장기 미접속 유저 접속 제한 userLockTimeUse: false # true 사용, false 미사용 userLockTime: 60 # 단위 : 분 (60분) passwordChgTimeUse: false # true 사용, false 미사용 passwordChgTime: 90 # 단위 : 일 (90일) successPage: / # page: https://dev-mdmdw.inspire.local/login # failedPage: https://dev-mdmdw.inspire.local/iruda/login # successPage: https://dev-mdmdw.inspire.local/iruda/ passwordSetup: enabled: true initialPattern: "iruda1!" ########## LOGOUT logout: page: /logout # page: https://dev-mdmdw.inspire.local/iruda/logout unAuthenticatedRedirectUrl: /login ########## MAIN main: page: '/' ########## SSO sso: use: false forceFilterSelect: default test: modeTest: false id: ADMIN ########################## ##### OTP 외부 API 연동 설정 ########################## optional-auth: otp: use-yn: false pre-login-url: /otp-login/pre # 1단계 인증 엔드포인트 URL (기본값: /otp-login/pre) login-url: /otp-login # 2단계 인증 엔드포인트 URL (기본값: /otp-login) success-url: / failure-url: /login pre-auth-timeout: 300 # OTP 인증 전 Timeout 시간 (초단위) max-attempts: 5 redirect: false #인증 실패시 redirect 여부 white-list: - http://127.0.0.1 - http://localhost user-id: # 현재는 API만 제공 (화면 미제공) use-yn: false login-url: /id-login # 인증 엔드포인트 URL (기본값: /id-login) success-url: / failure-url: /login redirect: true white-list: - http://127.0.0.1 - http://localhost # 커스텀 CSS 경로 resources: location: ${IRUDA_STATIC_PATH:} css: ${IRUDA_CSS_NAME:} common-location: ${COMMON_STATIC_PATH:} common-css: ${COMMON_CSS_NAME:} ########## # FILTER # - className: # - beanType: # - beanName: # - afterClassName: # - beforeClassName: ########## # filter: # option: # sso-shinhanlife: [ # { # beanType: 'com.datastreams.mdosa.site.shinhanlife.sso.config.ShinhanlifeSecurityConfigurerAdapter', # } # ] ################################################## # 배치작업 ################################################## batch: modeUse: true option: ########## - Session 만료처리기 checkingExpiredSessionScheduler: modeUse: false modeSlient: false cron: "0 0/1 * * * *" # ########## - 추천Data 생성 # popularRecommendationScheduler: # modeUse: false # modeVersionUse: false #recommend 키워드 리스트를 버저닝하여 관리할지 말지 여부 (true, false) # dateInterval: 7 # recommend 키워드 리스트 계산 대상을 현재로 부터 몇 일 단위로 할지 (30, 90, 100, 120, 365) # cron: "0 0/10 * * * *" file: schedule: delete-file: cron: "0 0 0/30 * * *" deleted: days: 30 use-yn: true temp: days: 1 use-yn: true community: schedule: delete-content: cron: "0 0 0/30 * * *" deleted: days: 30 use-yn: true temp: days: 1 use-yn: true ################################################## # 임시 사용자 기능 #TODO: 임시 ################################################## user: modeSortByCreateDt: true ################################################## # 파일 경로 설정 # > 절대경로 설정 필수 # > / 설정 불가능 (FileAspect.java 참조) ################################################## file: upload-location: use-yn: true path: ${IRUDA_FILE_UPLOAD_PATH:D:\\iruda5.1.x\\temp} # path: C:\\iruda_data ################################################## # 파일 동기화 설정 (이중화 서버 환경) # > NAS를 사용하지 않고 각 서버에 파일을 저장할 때 동기화를 위한 설정 # > 서버 목록은 쉼표(,)로 구분하여 설정 # > 예시: http://server1:8080,http://server2:8080,http://server3:8080 ################################################## sync: # 파일 동기화 기능 사용 여부 enabled: false # 동기화 대상 서버 목록 (현재 서버 제외, 쉼표로 구분) servers: http://192.168.0.130:18080/iruda # 현재 서버 식별자 (각 서버마다 고유하게 설정) current-server-id: iruda1 # 동기화 API 인증키 (서버 간 통신 보안) api-key: iruda-file-sync-key timeout: connect: 5000 read: 30000 # 비동기 동기화 사용 여부 (true: 업로드 응답 후 백그라운드 동기화) async: true # 동기화 실패 시 재시도 횟수 retry-count: 3 # 다운로드 시 로컬에 파일이 없으면 다른 서버에서 가져오기 (Pull/Fallback) fallback-enabled: true ################################################## # # [LOGGING] # ################################################## logging: ######################### # additional-appender # - Spring 제공 => X, # - IRUDA Custom Option => O # - Options # - nothing: Nothing to log more # - file: Generate Simple Log file (TODO: 에러발생하여 임시주석) # - file-rolling: Genrate Rolling Log File ######################### additional-appender: file-rolling ##### Pattern pattern: rolling-file-name: '/LOGS/BI/iruda/application-%d{yyyy-MM-dd}-%i.log' file: '%d{yyyy-MMM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n' ##### level 이거 되나? 안되면 log4j2.xml 파일에서 설정한다. config: classpath:log4j2-iruda.xml level: root: INFO [min-s-iruda-01@MIN-T-MDMAP-01 classes]$ 요

Default Thumbnail
#일상

application.yml(ird)

// 여[min-s-iruda-01@MIN-T-MDMAP-01 classes]$ cat application.yml # # [DataStreams] # #################################################################################################### datastreams: product: ################################################## # 라이센스 ################################################## name: iruda version: 5.0 license: # 경로는 / 로 끝나야함 # 제품 License 파일 설치 경로 #path: /home/dggrp/license/ path: /home/min-s-iruda-01/License/iruda/ # License 체크시 로그 활성화 (default=false) false=로그 미사용 / true=로그사용 mode-log-use: true licenser: # 경로는 / 로 끝나야함 # LICENSE_HOME 강제 지정 경로 # 환경변수 작동하지 않을때 메타를 통해 강제지정 # (선택기능) WINDOWS 환경아닌경우 경로 뒤에 ?/bin/bash 형태로 쉘 경로 지정 가능 # 예시) /home/meta/license/?/bin/bash -> /home/meta/license/ = 라이센스 경로, /bin/bash = 쉘 경로 #path: /home/dggrp/license/ path: /home/min-s-iruda-01/License/ #################################################################################################### # # [SERVER] # #################################################################################################### server: ######################### # (for Develop!) Embeded Tomcat - HTTP ######################### port: 8080 # context-path: /iruda # SB 1.x # session.timeout: 30 # SB 1.x servlet.context-path: /iruda # SB 2.x # servlet.session.timeout: 30s # SB 2.x tomcat: # 내장 톰캣의 경우 아래의 설정으로 pool 생성 was인 경우 tomcat은 Connector Thread 설정 참조 threads: max: 200 min-spare: 10 # 항상 활성화 되어있는(idle) thread의 개수 max-connections: 8192 # 수립가능한 connection의 총 개수 accept-count: 100 # 커넥션 큐의 사이즈 connection-timeout: 20000 additional-tld-skip-patterns: "*.jar" ######################### # (for Develop!) Embeded Tomcat - HTTPS (SSL) ######################### ##### 1. Create key file on Command Line: ##### - 예) keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore key.https -validity 4000 ##### - 예) keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 ##### 2. Move key file to iruda-stater/src/main/resource/keystore/* # ssl: # enabled: false # key-store: classpath:keystore/https-test.key # key-store-type: PKCS12 # key-store-password: datastreams # key-alias: spring ######################### # Error page ######################### error: #기본오류페이지 사용여부 (true:사용, false:BasicErrorController를 참조) whitelabel.enabled: false #오류 응답에 stacktrace 내용을 포함할지 여부 (always, never, on_trace_param) include-stacktrace: never #오류 응답에 exception의 내용을 포함할지 여부 (true, false) #Option) false, true include-exception: false #Option) never, always, on_param include-message: on_param #Option) never, always include-status: never #Option) never, always include-error: never #################################################################################################### # # [OPENSEARCH] # #################################################################################################### opensearch: hosts: - ${OPENSEARCH_URL:localhost:9200} #scheme: https scheme: http username: admin password: StrongPassword123A! connection-timeout: 5000 response-timeout: 600000 max-connection-total: 200 max-connection-per-route: 50 ssl: enabled: false trust-store-type: jks # jks 또는 PKCS12 trust-store-path: D:\\OPEN_SEARCH\\opensearch-truststore.jks trust-store-password: changeit trust-all: false #################################################################################################### # # [CUSTOMIZER] # #################################################################################################### customizer: property-provider: ################################################## # # (민감정보등 보호조치를 위한) Option제공 설정 # ################################################## modeUse: true option: ######################### # Application ######################### app: modeUse: true excludes: [ { codes: [ ] }, ] encryptions: [ { type: "", key: "", codes: [ ] }, ] decryptions: [ { type: "", key: "", codes: [ ] }, ##### 예1 - 이런식으로 설정가능하지만, 예2처럼 암호화된 설정을 사용하는 것이 보안상 좋다! 개발자에게 설정에대한 secret 토큰값을 문의! # { type: "AES", key: "iruda", codes: [ _app.mdosa.datasource.main.user, _app.mdosa.datasource.main.password ] }, ##### 예2 # { secret: "U2FsdGVkX18ybSGevkmPU7jAyTSwW4IlHbjpKJBktJQbIO7x1odTrR20Npbj9eiSxZvilVfd8lYDKl7TJXVBYtd9LcQ127+DyZD7bIHBxL8lCTdjNBmPNVS8bj2dfu8jj9wqTfMg4vNS0os2dhoLnxzkSKYtyqClJam4aC9IfBtWbworQ0G8gJWt9hYPC4Gb" } ] ######################### # View ######################### view: modeUse: true excludes: [ { codes: [ _app.mdosa.security.password.persistence* ] }, ] encryptions: [ { type: "BASE64", key: "", codes: [ _app.mdosa.security.password.*Key, _app.mdosa.security.password.*Salt ] }, ] # decryptions: [ # { type: "", key: "", codes: [ ] }, # ] #################################################################################################### # # [VALULT 암호화 저장소 옵션] # 실제 사용시 vault 서버 정보를 입력 # 기본 vault dev 모드 설정 #################################################################################################### vault: path: secret/iruda uri: http://localhost:8200 authentication: TOKEN token: 00000000-0000-0000-0000-000000000000 #################################################################################################### # # [SPRING] # #################################################################################################### spring: ##### JMX jmx: enabled: false ##### AOP aop: proxy-target-class: true ##### Main main: allow-bean-definition-overriding: true ##### Profiles profiles: ########################################################################### # # ※ Profile 나열 순서대로 Override되는 성질을 이용하여 지역환경에 맞는 Option을 설정한다. # - (기본값유지) application.yml은 임의수정금지! # - (기본값유지) application-engine-*.yml: 각 Engine의 기본설정 # - (기본값유지) application-develop-*.yml: 각 Develop-Engine의 기본설정 # - (테스트용) application-test.yml: 각 Module별로 test단에서만 생성하여 모듈특성에 맞게 사용 # - (사이트용) application-site.yml: 생성하여 Site환경에 맞는 설정을 부분적으로 추가하여 사용 # - (접속설정) application-datasource.yml: 생성하여 Site든 Local이든 환경에 맞는 접속설정만을 부분적으로 추가하여 사용 # - (개발설정) application-local.yml: 생성하여 개발자의 Local개발환경에 맞는 맞춤설정을 부분적으로 추가하여 사용 # - (강제설정) application-force.yml: 가장 우선순위가 높은 설정파일이다. # # ※ Build Option: sync.config.* (on gradle-*-*.properties files) # - Build레벨에서 Case에 맞게 External-Config(*.yml)를 Package하여 배포물을 만들 수 있다. ########################################################################### active: [ # process, # build Level에서 gradle-process-*.properties 의 sync.config.process 에 의해서 application-process.yml 로 복사된다. # test, # test build Level에서 test용으로 적용할 수 있다. - 경로: {PATH_TO_MODULE}/src/test/resources/application-test.yml # site, # build Level에서 gradle-site-*.properties 의 sync.config.site 에 의해서 application-process.yml 로 복사된다. # datasource, # build Level에서 gradle-{site|local}-*.properties 의 sync.config.dataousrce 에 의해서 application-datasource.yml 로 복사된다. # local, # build Level에서 gradle-local-*.properties 의 sync.config.site 에 의해서 application-process.yml 로 복사된다. # force # 필요에 의해서 application-force.yml 를 만들어서 가장 높은 우선순위로 적용할 수 있다. ] ##### Resource # resources: # static-locations: file:C:/static/ # add-mappings: false # static-locations: classpath:/static/css/,/static/js/ # throw-exception-if-no-handler-found: true # static-path-pattern: /static/**, /static/js/**, /static/css/** task: # 스프링 boot 2.0 이상인 경우 아래 설정만으로도 async를 위한 taskExecutor를 등록할 수 있음 execution: pool: core-size: 10 max-size: 30 queue-capacity: 100000 allow-core-thread-timeout: true thread-name-prefix: "iruda-async-" ##### View Template - Freemarker # - BaseURL: {MODULE_ROOT}/src/main/resources/iruda/freemarker/ freemarker: settings: auto_import: "spring.ftl as spring, macros/ui.ftl as ui" incompatible_improvements: 2.3.34 prefix: "" suffix: ".ftl" cache: false charset: UTF-8 content-type: text/html expose-spring-macro-helpers: true expose-request-attributes: true expose-session-attributes: true redirectHttp10Compatible: false template-loader-path: - classpath:/iruda/freemarker/ - classpath:/mdosa/freemarker/ - classpath:/templates/ - classpath:/org/springframework/web/servlet/view/freemarker/ # jsp InternalResourceViewResolver mvc: view: prefix: /WEB-INF/views/ suffix: .jsp log-request-details: true ##### View Template - Thymeleaf # - BaseURL: {MODULE_ROOT}/src/main/resources/iruda/thymeleaf/ thymeleaf: prefix: classpath:/iruda/ suffix: .html view-names: thymeleaf/* encoding: UTF-8 check-template-location: true servlet: content-type: text/html; charset=UTF-8 cache: false jackson: default-property-inclusion: non_null mapper: SORT-PROPERTIES-ALPHABETICALLY: false AUTO_DETECT_IS_GETTERS: true serialization: ORDER-MAP-ENTRIES-BY-KEYS: false INDENT_OUTPUT: true # JSON출력 예쁘게 ~ servlet: ##### Spring에서 지원해주는 Request Log ==> UserAccessFilter에서 더욱 시각적이고 어플리ㅔ이션 친화적으로다가 개발하기 편하게 따로 구현하였기 때문에 false 처리 ##### MultipartFile 설정 ==> 52428800 = 50MB / 2097152000 = 2GB multipart: enabled: true max-file-size: 2GB # MdosaProperties.groovy 에 매핑이 되야하므로 숫자만 설정할것... (bytes) - 52428800bytes = 50MB max-request-size: 200MB # MdosaProperties.groovy 에 매핑이 되야하므로 숫자만 설정할것... (bytes) location: /home/dggrp/iruda_data/upload_files batch: job: enabled: true # 배치 사용 여부 (local, server 구분 - Deploy 마다 배치가 도는것 방지) jvm: id: master # 이중화 구성시 WAS에 JVM 옵션 적용 - 'jvmId=master'로 설정된 WAS에서만 배치 실행 user: url: https://coeus-dev.skcc.com ##### JPA # jpa: # database-platform: org.hibernate.dialect.PostgreSQLDialect # org.hibernate.dialect.Oracle12cDialect, org.hibernate.dialect.PostgreSQLDialect # generate-ddl: true ## properties: ## generate-ddl: true ## show-sql: true ## hibernate: ## ddl-auto: update ## hbm2ddl: ## auto: create-drop # properties: # hibernate: # hbm2ddl.auto: none # show_sql: false # Hibernate가 DB에 날리는 모든 쿼리를 표시 # format_sql: false # 쿼리문을 보기 좋게 만들어 주는 옵션 # physical_naming_strategy: "com.datastreams.mdosa.jpa.model.naming.CamelCaseToSmallSnakeCaseStrategy" # default_batch_fetch_size: 1000 # 복잡한 조회쿼리 작성시, 지연로딩으로 발생해야 하는 쿼리를 IN절로 몇개를 모아보내는지에 대한 옵션 # properties: # hibernate.hbm2ddl.auto: create-drop # hibernate.dialect: org.hibernate.dialect.MySQL5Dialect # datasource: # hikari: # connection-timeout: 30000 # maximum-pool-size: 5 # platform: h2 ## driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:h2:mem:javasterling # username: root # password: devs # # h2: # console.enabled: true devtools: restart: enabled: false livereload: enabled: false ## cloud 용 vault 세팅 quartz: scheduler-name: irudaQuartzScheduler job-store-type: jdbc jdbc: # platform: oracle initialize-schema: never # schema: classpath:org.quartz.impl.jdbcjobstore.tables_postgres.sql overwrite-existing-jobs: true properties: org.quartz: scheduler: instanceName: irudaQuartzScheduler instanceId: AUTO rmi: export: false proxy: false wrapJobExecutionInUserTransaction: false threadName: IRUDA_QuartzShcedulerThread threadPool: class: org.quartz.simpl.SimpleThreadPool threadNamePrefix: IRUDA threadCount: 20 threadPriority: 5 threadsInheritContextClassLoaderOfInitializingThread: true jobStore: tablePrefix: IRD_SCHEDULER_ isClustered: true clusterCheckinInterval: 20000 misfireThreshold: 60000 class: org.springframework.scheduling.quartz.LocalDataSourceJobStore driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # Logging configuration plugin: triggHistory.class: org.quartz.plugins.history.LoggingTriggerHistoryPlugin jobHistory.class: org.quartz.plugins.history.LoggingJobHistoryPlugin # org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate # org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.OracleDelegate config: import: optional:vault:// cloud: vault: enabled: false # vault 사용여부 uri: http://localhost:18080 token: ${VAULT_TOKEN:} kv: enabled: false backend: secret default-context: iruda # aws-iam: # endpoint-uri: log4j2: config-location: classpath:log4j2-iruda.xml mail: host: smtp.yourcompany.com # 회사 메일 서버 주소 port: 587 # 서버 포트 (보통 25, 465, 587 중 하나) username: your_id # 발송 계정 password: your_password # 발송 계정 비밀번호 properties: mail: smtp: auth: true # 사내 서버가 인증을 요구하는지 확인 필요 starttls: enable: true # TLS 보안 연결 여부 #################################################################################################### # # [SECURITY] # #################################################################################################### jasypt: encryptor: # password는 환경변수로 처리하거나 vault 같은 별도의 서버에 저장하도록 한다. # password: agjldfjldfgj algorithm: PBEWITHHMACSHA512ANDAES_256 pool-size: 1 key-obtention-iterations: 1000 security: ignored: /common/**, /css/**, /js/**, /dist/**, /static/**, /ckeditor/**, /images/**, /img/**, /fonts/**, /*.entry.js, /screen/**, /docs/**, /SSOlogin/**, /LoginServlet, /healthcheck.html, /ssoagent/**, /dataflow/**, /note/**, /jira/**, /*.ico, /*.png, /*.js, /*.svg, /*.css oauth2: client: clientId: ssoClient clientSecret: ssosecret remember-me: tokenValiditySeconds: 1209600 #two weeks parameterName: remember-id csrf: enable: true ignore: # 형식: "패턴" 또는 "METHOD_패턴" (예: POST_/api/webhook/**) - /websocket/** - /monitor/** - /remoting/** - /post/upload/image - /internal/file/** - /iruda-dev/** - POST_/login/password-reset/** usernameParameter: username passwordParameter: password ######################### sso: # SSO 사용:true 미사용:false use: false # SSO 인증 Filter URL authUrl: /sso_security_check # 강제 session 생성:true 미생성:false forceIrudaSession: false # login / logout target URL # 우리카드 : http://wepwebt.woorifg.com/eplogin/login loginPage: /login # login 실패 URL failedUrl: /errorPages/sso_error.jsp # 우리카드 proxy URL irudaProxyURL: http://wsypxyt.woorifg.com:7781/wcmetat # login 성공후 강제 redirect URL 활성:true 비활성:false forceRedirect: false # home redirect URL redirect: https://wcmetat.woorifg.com:8080/iruda # 추가적인 인증이 필요한 url [ex) KB국민은행 별도 포탈 인증을 위한 토큰 인증 url] externalUrl: http://172.17.18.141:8011/potal/api/vaildate_token.json?id= # SSO 인증 class 명 # 한솔재지 : HansolSsoSessionAuthenticationFilter # 우리카드 : WooriCardSsoSessionAuthenticationFilter # 롯데손보 : LotteSsoSessionAuthenticationFilter # KB국민은행 : SsoSessionAuthenticationFilter ( 별도의 Controller로 HttpSession 사용 ) # KB카드 : KbCardSsoSessionAuthenticationFilter # SK주식회사 : SKSsoSessionAuthenticationFilter # 한국투자증권 : com.datastreams.mdosa.site.hantoo.sso.security.HantooSsoSessionAuthenticationFilter class: com.datastreams.iruda.sso.security.SsoSessionAuthenticationFilter provider: use: false class: com.datastreams.iruda.sso.security.provider.LotteAuthenticationProvider logoutsuccesshandler: class: com.datastreams.mdosa.security.IrudaLogoutSuccessHandler #################################################################################################### # # [IRUDA] # #################################################################################################### mdosa: ################################################## # 제품 코드명 - 이루다 모듈에서 현재 애플리케이션 이름을 파악하기 위함 ################################################## product: code: iruda ai: use: false api: Key: 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 ################################################## # 외부 환경에서 추가 custom css file load를 하기위한 설정 ################################################## resources: location: ${IRUDA_STATIC_PATH:} css: ${IRUDA_CSS_NAME:} common-location: ${COMMON_STATIC_PATH:} common-css: ${COMMON_CSS_NAME:} # common-location: C:/home/static-resources/common # common-css: common.css # location: C:/home/static-resources/common # css: iruda.css ################################################## # 배치용 쓰레드 풀 설정 ################################################## batch: thread-pool: core-size: 8 # core-thread = CPU 코어수 * 2 ~ 4 max-size: 16 # thread = core-thread * 2 queue-capacity: 80 # 안정적인 백프레셔 처리를 위해서 일반적으로 낮은 값을 잡는다 allow-core-thread-timeout: true thread-name-prefix: "iruda-batch-" file: schedule: delete-file: cron: "0 0 0/30 * * *" deleted: days: 30 use-yn: true temp: days: 1 use-yn: true community: schedule: delete-content: cron: "0 0 0/30 * * *" deleted: days: 30 use-yn: true temp: days: 1 use-yn: true env: processor: com.datastreams.mdosa.environment.config.IrudaEnvironmentPostProcessor ################################################## # 모듈 ################################################## module: option: ##### 각 모듈마다 각자의 모듈명을 Key로서 등록하도록 한다. (iruda-test는 dummy다.) iruda-test: true ################################################## # 오류 페이지 설정 ################################################## error: page: thymeleaf/error mode-optional-exception-message-visible: true redirectUrl: /iruda # 메인으로 돌아가기 버튼 이동 위치 작성 backRedirectUrl: # 입력 없을시 뒤로가기 기능 ### Version 및 UI 로그인 페이지 버전 표기 version: 5.0 ######################### TODO: @Deprecated Kbcard 모듈로 가라 얍! remote: access: key: 6726ddb91e14a35efc46ae1fc50565e1814d9862000778d415dc84ec0b774614 #kbcard dq key값 #applies: meta #로그인시 remote.access.key를 사용할 목록. ex) meta, quality, qtrack, ... (단, 관련 코딩이 되어 있어야함.) # http://10.210.104.59:2316/dqminer_noax/main_sso_select.jsp?IRUDA_AUTH_VAL=${mdosa.remote.access.key} ######################### site 전용 페이지 및 리소스가 있는 경우 site명 입력 custom: none onloadAction: # site/default.ftl에 선언된 onLoadAction 함수를 call 하는 옵션. home: false login: false ################################################## ### Database ### ※ JNDI 를 위한 설정 방법 ### 1. mdosa.datasource.main.dbms = DB종류 - ex) dbms: oracle ### 2. mdosa.datasource.main.jndi.enabled = true ### 3. mdosa.datasource.main.jndi.name = JNDI이름 ### ### ※ JNDI 를 사용하지 않는 방법 ### 1. mdosa.datasource.main.jndi.enabled = false ################################################## datasource: main: dbms: postgresql driverClass: org.postgresql.Driver url: jdbc:postgresql://10.102.208.90:5432/MDM_UAT user: min_ds_iruda password: VkJJdhLHpAWR)(71 jndi: enabled: false name: jdbc/iruda hikari: connection-timeout: 30000 maximum-pool-size: 20 # connection-init-sql: "select 1" # Connection이 Pool에 추가되기전 실행할 SQL # connection-test-query: "select 2" # Connection의 유효성검사 SQL (JDBC4 에서는 비추) ################################################## ### Redis ################################################## redis: host: port: ### 언어설정 i18n: ##### ※ 빈값으로 설정하면 ==> Browser Locale 을 최우선순위로 한다. default: ko languages: [ ko, en, zh ] locales: [ ko, en, zh_CN ] ################################################## # 세션 # ※ IRUDA 3.0 # - storage-type == old-jdbc # ==> defaultMaxInactiveInterval (만료시간) 의 단위 ==> millisecond (30분 = 1800000, 10분 = 600000) # # ※ IRUDA 4.0 # - storage-type: redis OR jdbc # ==> defaultMaxInactiveInterval (만료시간) 의 단위 ==> second (30분 = 1800, 10분 = 600) ################################################## session: ##### Session 저장소 - 유효값: old-jdbc, jdbc, redis storage-type: "jdbc" ##### Session Remote레파지토리 사용 여부 remote-enabled: true use-custom-token: false sessionExtend: true # true : 자동기간연장, false : api 호출로 수동기간연장 ######################### Repository repository: forceFetchAlways: true defaultMaxInactiveInterval: 1800 # custom 세션일 경우 30분 - 1800(seconds) 아닌 경우 1800000(miliseconds) ######################### Session Cookie # cookieName: Session을 보관할 Cookie 명 # cookiePath: ? # domainName: 특정 도메인에서의 쿠키만 접속가능 # domainNamePattern: 특정 패턴의 도메인에서의 쿠키만 접속가능 (단, domainName설정시 DomainNamePattern은 작동하지 않는다.) ######################### cookieSerializer: cookieName: IRUDASESSIONID cookiePath: "/" domainName: "" domainNamePattern: "^.+?\\.(\\w+\\.[a-z]+)$" sameSite: "Lax" useBsse64Encoding: false useSecureCookie: false ######################### Session 계정당 확인 concurrentSession: maxSessionSize: 1 # 유저별 생성 가능한 유저 세션 수 modeExceptionUse: true # 동시 로그인시 세션 에러 발생 여부 exceptionType: "FORCE_LOGOUT_ALL" admin: "smgr" # 세션 수 상관 없이 로그인 가능한 유저 (ex 관리자) redirectUrl: "/login" viewName: "thymeleaf/error" ######################### TODO: jwt 정확한 활용처 찾기 jwt: issuer: iruda_json_web_token secretKey: iruda-cc0919a3-4340-4aa1-b885-3428b8a3ad6f emulateHTTP: false # (true/false) true일 경우 PUT/DELETE/PATCH Request Method가 모두 POST로 변경됨. drm.use: false maxFileSize: ${spring.servlet.multipart.max-file-size} maxRequestSize: ${spring.servlet.multipart.max-request-size} upload.temp.path: /.iruda_data/temp # portal 의 추가 링크 # link: 메뉴url, name: 메뉴명, role:해당 메뉴의 권한,callback: 해당메뉴의 iruda-ui에 구현된 함수사용(getUserParam) # home-menus: # - link: test # name: test # callback: getUserParam # WEB-INF/mdosa/freemarker/site/config 경로의 사이트 설정 파일 적용. Type: [default, kbcard, wooricard] # site-config에 사이트 명칭을 입력 후, WEB-INF/mdosa/freemarker/site/config 경로에 사이트 명칭과 동일한 이름의 ftl 파일을 생성한다. 그 후, 해당 설정을 적용할 프로젝트의 소스 파일에서 mdosa/site-config-loader.js 파일을 import 해주면 된다. # site-config: default ################################################## # 보안 ################################################## security: ########## Simple Header Security (미구현) simple-header-security: ########## # 특정 URL에 특정 RequestHeader 값을 필수 조건으로 객체를 정의한다. # - mdosa.security.modeUse: 기능 사용여부 # - mdosa.security.option.*.modeUse: 객체 사용여부 # - mdosa.security.option.*.url: URL을 * 을 이용하여 정의 # - mdosa.security.option.*.header: header 필수 조건을 정의 # - URL을 명시한 API를 대상으로 한다. modeUse: false option: example: { modeUse: false, url: [ '/search/**', '/suggest/**' ], header: { shs: iruda } } example2: { modeUse: false, url: [ '/api/v3/**' ], header: { shs: 'iruda2' } } ########## SSL ssl: ########## RestTemplate HostnameVerifier # <유효값> # - (빈값) : 기본 설정 (DefaultHostnameVerifier) # - org.apache.http.conn.ssl.NoopHostnameVerifier : hostname을 검사하지 않는 Verifier hostname-verifier: "" useRightMouse: true ########## CORS 설정 ########## false 는 전부 모든 오리진에 대해 공유 ########## true는 특정 오리진에 대해서만 공유 cors: enabled: false origins: > http://localhost:18080 patterns: > * methods: > GET, POST headers: > * use-credentials: true whiteList: > http://localhost, http://127.0.0.1, https://dev-mdmdw.inspire.local/meta, https://dev-mdmdw.inspire.local/iruda, https://dev-mdmdw.inspire.local/mdm, https://dev-mdmdw.inspire.local/quality IpAccessLimit: enabled: true # 필터 활성화 여부 login-only: true # true=login-endpoints만 체크 / false=모든 요청 체크 login-endpoints: # 로그인 엔드포인트 목록 - /login - ${mdosa.security.optional-auth.otp.pre-login-url} - ${mdosa.security.optional-auth.otp.login-url} allow-ips: # 시스템 허용 IP/CIDR, 비어있거나 * 이면 전체 허용 # - 192.168.1.1 - '*' # 전체 허용 redirect: /login # 사용자 레벨 차단 시 이동할 URL allow-urls: # IP 체크 제외 URL, 비어있거나 * 이면 전체 허용 - /home/myInfo - /home/init # - '*' # 전체 허용 ########## 암호 전송전처리 형식: PLAIN (평문), SHA256 # TODO: @Deprecated # TODO: [한투버전] FrontEnd에서는 이 옵션을 한투에서만 사용한다. # TODO: BackEnd는 모조건 mdosa.security.password.value-encryption-type 을 사용한다. passwordEncryptType: PLAIN ########## 암호 전송전처리 형식: AES # # [CLIENT] => encrypt(Value) => encrypt(Request) => [SERVER] => decrypt(Request) => decrypt(Value) => encrypt(Value) => Repository # ########## encryption: # 암호화 방식 - PBKDF2 + AES256/GCM/NOPadding secret: ${AES_SECRET:test} key-spec: secret: ${AES_KEY_SPEC_SECRET:test} salt: ${AES_KEY_SPEC_SALT:test} iterations: ${AES_KEY_SPEC_ITERATIONS:310000} password: # 패스워드 검증 패턴 중 하나 - 대, 소 영문자((?=.*[A-Z])(?=.*[a-z])) 및 숫자((?=.*\\d)), 특수 문자의 활용 여부((?=.*[\\W])) 및 8, 20 글자 제한 # (유효값: SHA256, SHA512, BCRYPT, PBKDF2, ARGON2) 패스워드 해쉬 방식 type: SHA256 encoders: SHA256: secret: ${SHA256_SECRET:test} salt-length: 16 iterations: 310000 SHA512: secret: ${SHA512_SECRET:test} salt-length: 16 iterations: 310000 BCRYPT: strength: 10 PBKDF2: secret: ${PBKDF2_SECRET:test} salt-length: 16 iterations: 310000 algorithm: PBKDF2WithHmacSHA512 ARGON2: salt-length: 16 hash-length: 32 iterations: 2 memory: 16384 parallelism: 1 # 패스워드 검증 패턴 중 하나 - 대, 소 영문자 및 숫자, 특수 문자의 활용 여부 및 8, 20 글자 제한 patterns: - "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[\\W]).{8,20}$" # 중복 몇 회 이상, 연속적인 문자 몇 회 이상 일 경우 검증 실패> 3 이상만 가능 duplicateAllowCnt: 0 continuousAllowCnt: 0 adminPasswordChk: true # 관리자 페이지 접근 할 때 패스워드 확인 사용 : false 미사용 : true chgPasswordRedirect: ${mdosa.security.main.page} password-history-cnt: 0 # 이전 패스워드 정보 보관 개수 allow-id: true use-inital-random-password: false # 초기 랜덤 패스워드 사용 여부 mail-domain: datastreams.co.kr pwd-reset-mail-template: thymeleaf/pwd-reset-template verification-code-mail-template: thymeleaf/verification-code-template system-user: smgr use-password-initial-mail: false # 초기화된 패스워드 메일 전송 여부 init-redirect-login-url: https://dev-mdmdw.inspire.local/iruda/login # 초기화된 패스워드 메일에 로그인 페이지로 이동할 버튼 정보 # 중복 몇 회 이상, 연속적인 문자 몇 회 이상 일 경우 검증 실패> 3 이상만 가능, 0 -> 검증 하지 않음 pepper: ${IRUDA_PASSWORD_PEPPER:iruda-pepper} duplicate-allow-cnt: 3 continuous-allow-cnt: 3 id-pattern-allow: false # 패스워드에 아이디 포함 허용 여부 history-password-cnt: 5 # 패스워드 변경시 과거 패스워드 몇 개까지 검증할지 admin-password-chk: true # 관리자 페이지 접근 할 때 패스워드 확인 사용 : false 미사용 : true chg-pssword-redirect: ${mdosa.security.main.page} countBadCredentials: true usernameParameter: ${security.usernameParameter} passwordParameter: ${security.passwordParameter} ########## LOGIN login: page: /login # 로그인 페이지 failedPage: /login # 로그인 실패시 보여줄 페이지 successPage: / # 로그인 후 보여줄 기본 페이지 useDefaultTargetUrl: true # 항상 기본 페이지를 보여줄지 여부 (false 시 currentHash 쿠키 값을 이용하여 보여줌) useReferer: false # 이전 페이지를 보여줄지 여부 targetUrlParameter: targetUrl # targetUrlParameter - 로그인 이후 리다이렉트 할 페이지를 request parameter로 받을 수 있게 파라미터 이름을 지정, # 로그인 요청시 해당 파라미터와 함께 값을 담아 요청을 보내면 해당 url을 최우선 적으로 리다이렉트 시킴 loginFailureCnt: 5 # 5번의 접속 실패 제한 횟수 offlineLimitDay: 90 # 단위 : 일 - 장기 미접속 유저 접속 제한 passwordSetup: enabled: true # 로그인 전 패스워드 설정 화면 사용 여부 (false 시 아래 초기 패턴+아이디로 자동 암호화 설정됨, 기본값: true) initialPattern: "iruda1!" # enabled: false 시 사용자 추가/관리자 비밀번호 초기화 때 사용될 초기 패스워드 접두사 패턴 (기본값: iruda1!) count-bad-credentials: true userLockTimeUse: false # true 사용, false 미사용 userLockTime: 60 # 단위 : 분 (60분) passwordChgTimeUse: false # true 사용, false 미사용 passwordChgTime: 90 # 단위 : 일 (90일) ########## LOGOUT logout: page: /logout successHandlerClass: com.datastreams.mdosa.security.IrudaLogoutSuccessHandler ## login successHandler에 등록되는 defaultUrl successUrl: /login unAuthenticatedRedirectUrl: /login ########## MAIN main: page: / ########## Provider # com.datastreams.mdosa.security.IrudaAuthenticationProvider # com.datastreams.mdosa.security.SsoAuthenticationProvider # com.datastreams.iruda.sso.security.provider.LotteAuthenticationProvider providerClass: '' ########## SSO sso: use: ${security.sso.use} forceFilterSelect: sso, default logout_method: "default" login_btn_use: false login_page: "/sso_login" test: modeTest: false id: administrator # SSO 인증 Filter URL authUrl: /sso_security_check # 강제 session 생성:true 미생성:false forceIrudaSession: false # login / logout target URL # 우리카드 : http://wepwebt.woorifg.com/eplogin/login loginPage: /login # login 실패 URL loginFailedPage: /errorPages/sso_error.jsp # 우리카드 proxy URL irudaProxyURL: http://wsypxyt.woorifg.com:7781/wcmetat # login 성공후 강제 redirect URL 활성:true 비활성:false forceRedirect: false # home redirect URL redirect: https://wcmetat.woorifg.com:8080/iruda # 추가적인 인증이 필요한 url [ex) KB국민은행 별도 포탈 인증을 위한 토큰 인증 url] externalUrl: http://172.17.18.141:8011/potal/api/vaildate_token.json?id= ################################################## # FILTER # - beanType: # - beanName: # - afterClassName: # - beforeClassName: ################################################## filter: select: default, request-detail-log, requst-header-log # forceFilterSelect: option: default: [ ##### 특정 WAS 환경에서 Slash(/) 로 끝나는 Path에 대해 인식 못하는 것을 방지(?) { beanType: 'com.datastreams.mdosa.web.filter.RootPathToPreventServletFilter', afterClassName: 'org.springframework.security.web.context.SecurityContextPersistenceFilter' }, ##### 간단한 Request를 Console에 출력 { beanType: 'com.datastreams.mdosa.web.filter.UserAccessLogFilter', afterClassName: 'org.springframework.security.web.context.SecurityContextPersistenceFilter' }, ##### Session 만료에 대해 특정 StatusCode로 Response를 던진다. { beanType: 'com.datastreams.mdosa.web.filter.AjaxSessionExpirationFilter', afterClassName: 'org.springframework.security.web.access.ExceptionTranslationFilter' } ] request-simple-log: [ ##### 간단한 Request를 Remote에 Log { beanType: 'com.datastreams.mdosa.web.filter.UserAccessRequestSimpleLogFilter', afterClassName: 'org.springframework.security.web.context.SecurityContextPersistenceFilter' } ] request-detail-log: [ ##### 상세한 Request를 Remote에 Log - RequestBody 정보는 1번만 읽을 수 있기때문에 Log로 찍거나 재활용하려면 사용할 수가 없는 데 ReadableRequestWrapper Class로 Wrapping 해주는 Filter { beanType: 'com.datastreams.mdosa.web.filter.UserAccessRequestWrapperDetailLogFilter', afterClassName: 'org.springframework.security.web.context.SecurityContextPersistenceFilter' } ] requst-header-log: [ { beanType: 'com.datastreams.mdosa.web.filter.UserViewAccessByHeaderLogFilter', afterClassName: 'org.springframework.security.web.context.SecurityContextPersistenceFilter' } ] ###################### # OTP 외부 API 연동 설정 ###################### optional-auth: otp: use-yn: false pre-login-url: /otp-login/pre # 1단계 인증 엔드포인트 URL (기본값: /otp-login/pre) login-url: /otp-login # 2단계 인증 엔드포인트 URL (기본값: /otp-login) success-url: / failure-url: /login pre-auth-timeout: 300 # OTP 인증 전 Timeout 시간 (초단위) max-attempts: 5 redirect: false #인증 실패시 redirect 여부 white-list: - http://127.0.0.1 - http://localhost login-reason-required: false user-id: # 현재는 API만 제공 (화면 미제공) use-yn: false login-url: /id-login # 인증 엔드포인트 URL (기본값: /id-login) success-url: / failure-url: /login redirect: true white-list: - http://127.0.0.1 - http://localhost logging: expiration: cron: "0 0 3 L * *" # 매달 마지막날 3시 정각 expiration-day: 365 use-header-log-save: true use-header-log-details: true ################################################################################## # UI에서 화면 렌더링 등을 이유로 실제 관리자로 사용할 역할코드를 공유 # 해당 역할코드를 가진 사용자는 일정메뉴 (ex.커뮤니티)에서 모든 수정,삭제 권한 등을 가질 수 있음 ################################################################################## auth: sys-adm: - SMGR ######################### 임시 사용자 기능 user: # modeSortByCreateDt: false #################################################################################################### # ※ 메모리코드 # "메모리에 코드를 넣어놓고 사용할 수 있습니다." # "급하게 코드가 필요할 때 쓰세요." #################################################################################################### ##### additional-code.data ==> category.path.to.code: DATA additional-code.data: _test._category001.test.123123: code001: 1 code002: 2 code003: 3 _test._category002: code001: { codeName: "코드001", sequence: 1 } code002: { codeName: "코드002", sequence: 2 } code003: { codeName: "코드003", sequence: 3 } ################################################## # 파일 경로 설정 # > 절대경로 설정 필수 # > / 설정 불가능 (FileAspect.java 참조) # site에서 경로 설정 필요 ################################################## file: upload-location: use-yn: true path: /home/dggrp/iruda_data/upload_files ################################################## # 파일 동기화 설정 (이중화 서버 환경) # > NAS를 사용하지 않고 각 서버에 파일을 저장할 때 동기화를 위한 설정 # > 서버 목록은 쉼표(,)로 구분하여 설정 # > 예시: http://server1:8080,http://server2:8080,http://server3:8080 ################################################## sync: # 파일 동기화 기능 사용 여부 enabled: false # 동기화 대상 서버 목록 (현재 서버 제외, 쉼표로 구분) servers: http://192.168.0.130:18080/iruda # 현재 서버 식별자 (각 서버마다 고유하게 설정) current-server-id: iruda1 # 동기화 API 인증키 (서버 간 통신 보안) api-key: iruda-file-sync-key timeout: connect: 5000 read: 30000 # 비동기 동기화 사용 여부 (true: 업로드 응답 후 백그라운드 동기화) async: true # 동기화 실패 시 재시도 횟수 retry-count: 3 # 다운로드 시 로컬에 파일이 없으면 다른 서버에서 가져오기 (Pull/Fallback) fallback-enabled: true ################################################## # 배치작업 ################################################## ######################################################### # 차트내 링크 이동시 통합검색쪽 URL인지 확인 용도 (클라이언트 공유) # 통합검색 URL변경시 같이 변경 필요 ######################################################### chart-option: datamap-option: search-url: "#/search" ############################################################# # API KEY 관리 (X-API-KEY 헤더로 전달) # mdosa.api-key.alarm.use-yn : false => 미사용 (키없이 통신 가능) ############################################################# api-key: dev: value: ${API_SECRET_KEY_DEV:iruda_dev_key} use-yn: true alarm: value: ${API_SECRET_KEY:datastreams} use-yn: true un-auth-code-group: MailDomain,LocaleCode application: xml-view: config: location: classpath:/spring/views.xml endpoints: health: sensitive: false jmx: domain: iruda unique-names: false ######################### websocket: enabled: true # jmx: # connection: # qtrack: # host: '192.168.0.159' # port: '9841' # objectName: 'qtrack:type=Endpoint,name=metricsEndpoint' # QualityStream: # host: '192.168.0.159' # port: '9842' # objectName: 'qualitystream:type=Endpoint,name=metricsEndpoint' ######################### monitoring: websocket: enabled: true customStore: 'customStore.json' metrics: queue-size: 100 dqms: enabled: false ########################## # Prometheus 및 Micrometer 설정 ########################## management: endpoints: web: exposure: include: - health - env - heapdump - metrics - prometheus endpoint: heapdump: enabled: true # 힙 덤프 엔드포인트 활성화 health: enabled: true # 헬스 체크 엔드포인트 활성화 show-details: always # 헬스 체크 엔드포인트에 상세 정보를 항상 표시 env: enabled: true # 환경 변수 엔드포인트 활성화 prometheus: enabled: true # Prometheus 엔드포인트 활성화 metrics: tags: instanceName: ${METRICS_IRUDA_INSTANCE_NAME:IRUDA_v5.0} # ── Elastic (Micrometer Elastic Registry) elastic: metrics: export: enabled: true host: http://${OPENSEARCH_URL:localhost:9200} index: micrometer-metrics index-date-format: yyyy-MM-ww # kebab-case 추천 (camelCase도 인식됨) index-date-separator: "-" # 기본값 "-" timestamp-field-name: "@timestamp" auto-create-index: false step: ${METRICS_STEP:60s} connect-timeout: ${METRICS_CONNECT_TIMEOUT:60s} max-buckets: ${METRICS_MAX_BUCKETS:200000} retention-days: ${METRICS_ILM_RETENTION_DAYS:30} metrics-name: - "process_cpu_usage" - "jvm_memory_used" - "disk_free" - "disk_total" - "jvm_memory_max" # read-timeout: 10s # user-name: elastic # password: ${ES_PASSWORD} # api-key-credentials: ${ES_API_KEY} # ── OTLP (Micrometer OTLP Registry) otlp: metrics: export: enabled: true url: ${OTLP_METRICS_URL:http://localhost:4318/v1/metrics} # OTLP/HTTP 기본 step: ${IRUDA_METRICS_STEP:30s} connect-timeout: 10s read-timeout: 10s # headers: # Authorization: "Bearer xxx" # Prometheus pull 방식 활성(라이브러리 의존성 필요) prometheus: metrics: export: enabled: true ########################## # OpenTelemetry 설정 ########################## otel: instrumentation: micrometer.enabled: false # Micrometer 계측 활성화 traces: exporter: none # exporter: jaeger # Jaeger 트레이스 내보내기 활성화 # endpoint: "http://localhost:14250" # Jaeger 트레이스 엔드포인트 설정 metrics: exporter: none # exporter: otlp # Prometheus 메트릭 내보내기 활성화 (설정 가능: prometheus, otlp 등) # endpoint: "http://localhost:4318" logs: exporter: none # exporter: otlp # otlp 로그 내보내기 활성화 # endpoint: "http://localhost:4318" # otlp 로그 엔드포인트 설정 resource: attributes: service.name: iruda # 서비스 이름 설정 (다른 속성도 추가 가능: 환경, 버전 등) #################################################################################################### # # [LOGGING] # #################################################################################################### ########################## # 로깅 설정 (Log4j2 사용 시) ########################## logging: level: org.springframework.web.util.pattern: TRACE org.springframework.security.web.servlet.util.matcher: TRACE io.opentelemetry: DEBUG # OpenTelemetry 로깅 레벨 설정 io.lettuce.core: INFO # Redis 로깅 레벨 설정 loggers: otel: trace: enabled: true # 트레이스 로깅 활성화 metric: enabled: true log: enabled: true # 로그 로깅 활성화 ######################### # additional-appender # ※ Spring 제공 => X, # ※ IRUDA Custom Option => O # ※ Options # - nothing: Nothing to log file by Application-Level # - file: Generate Simple Log file by Application-Level (TODO: 에러발생하여 임시주석) # - file-rolling: Genrate Rolling Log File by Application-Level ######################### additional-appender: nothing ##### Log File Name file: name: /.iruda_data/logs/application-iruda.log ##### Pattern pattern: rolling-file-name: '/.iruda_data/logs/application-iruda-%d{yyyy-MM-dd}-%i.log' file: '%d{yyyy-MMM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n' # console: "%d %-5level %logger : %msg%n" ##### level 이거 되나? 안되면 log4j2.xml 파일에서 설정한다. # level: # root: INFO # web: DEBUG # org.springframework: ERROR ## org.springframework.core.env.PropertySourcesPropertyResolver: DEBUG #- Check - application*.yml ## org.springframework.aop: DEBUG #- Check - aop # org.springframework.security.web.FilterChainProxy: DEBUG #- Check - filter ## org.apache.ibatis: DEBUG ## org.mybatis: DEBUG # com.datastreams.mdosa: DEBUG # com.datastreams.meta: DEBUG # com.datastreams.superquery: DEBUG # com.datastreams.mdosa.search: TRACE # com.datastreams.mdosa.session: DEBUG #- Check - Session Update # com.datastreams.mdosa.message.dao.MessageDao: ERROR # com.datastreams.mdosa.authority.dao.AuthorityDao.finds: ERROR # com.datastreams.mdosa.monitoring: ERROR # com.datastreams.mdosa.menu.dao.MenuDao.finds: ERROR # com.datastreams.iruda.sso: DEBUG # com.datastreams.common.view.freemarker: ERROR # org.mybatis: INFO # com.mchange.v2: ERROR # freemarker: ERROR # freemarker.cache: DEBUG # java.sql.ResultSet: ERROR # javax: ERROR # jndi: ERROR # org.apache: ERROR # org.eclipse: ERROR # #### ElasticSearch Request & Response (Simple) # org.elasticsearch.client: TRACE # #### ElasticSearch Request & Response (Details) ## org.elasticsearch.client.sniffer: TRACE ## tracer: TRACE [min-s-iruda-01@MIN-T-MDMAP-01 classes]$ pwd /iruda_app/app/iruda/WEB-INF/classes [min-s-iruda-01@MIN-T-MDMAP-01 classes]$ 요

Default Thumbnail
#일상

open_stop.sh

#!/bin/bash PID=`ps -ef | grep opensearch | grep -v grep | awk '{print $2}'` kill -9 $PID

할 일 관리

오늘의 할 일 체크

해야 할 일을 꼼꼼하게 등록하고 체계적으로 완료해 나갑니다.

TODO 작성하기

캘린더

한눈에 보는 월간 일정

기념일, 업무, 약속 등 중요 일정을 달력에서 직관적으로 파악합니다.

일정 관리하기

연락처 / 문의

의견 제출 및 연락

건의 사항이나 피드백이 있으시다면 언제든 편하게 보내주세요.

문의 메일 보내기

© 2026 RealCowLabs. All rights reserved.