server: servlet: context-path: / session: # 세션 타임아웃 10분 고정 # WebLogic 배포 시에는 weblogic.xml 600 이 동일 값을 적용한다. # CSRF 토큰은 세션에 저장(HttpSessionCsrfTokenRepository)되므로 수명도 이 값과 동일하다. timeout: 10m cookie: name: JSESSIONID_PORTAL encoding: charset: UTF-8 port: '39130' error: include-message: never include-stacktrace: never include-binding-errors: never include-exception: false whitelabel: enabled: false path: /error forward-headers-strategy: native spring: data: web: pageable: default-page-size: '10' jpa: open-in-view: false hibernate: ddl-auto: none web: resources: cache: period: 0 # 캐시 비활성화 (개발환경) cachecontrol: max-age: 0 must-revalidate: true no-cache: true # 정적자원 콘텐츠 해시 버전닝(/css/main.css -> /css/main-.css)은 # @EnableWebMvc 로 WebMvcAutoConfiguration 이 비활성화되어 spring.web.resources.chain # 설정으로는 적용되지 않는다. 실제 버전닝은 PortalConfigWebDispatcherServlet 가 # 아래 app.resource-versioning.enabled 토글을 읽어 직접 수행한다. jta: enabled: false atomikos: properties: # log-base-dir: /logs/eapim/${inst.Name:devSvr11}/atomikos log-base-dir: /dev/null log-base-name: adp_tx thymeleaf: prefix: 'classpath:/templates/views/' suffix: .html mode: HTML encoding: UTF-8 cache: false main: allow-bean-definition-overriding: true # 정적자원 해시 버전닝 토글 (prod 제외 전 프로파일에 적용). # false 로 변경 시 /css/main.css 가 해시 없이 그대로 서빙되어 sourceMap 디버깅 가능. # prod 는 PortalConfigWebDispatcherServlet 에서 항상 ON 으로 고정되어 이 값을 무시함. app: resource-versioning: enabled: false # 정적자원 서버측 캐싱(ResourceChain 캐시) 토글 (prod 제외 전 프로파일에 적용). # false 면 sass/JS 변경이 서버 재시작 없이 즉시 반영됨(매 요청 재해석). # prod 는 PortalConfigWebDispatcherServlet 에서 항상 ON 으로 고정되어 이 값을 무시함. resource-caching: enabled: false security: basic: enabled: false sample-code-path: classpath:/templates/sample_code ems: datasource: jndi-name: jdbc/dsOBP_EMS schema: EMSAPP driver-class-name: oracle.jdbc.OracleDriver hibernate-dialect: org.hibernate.dialect.Oracle12cDialect hibernate-physical-naming-strategy: com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy entity-package: com.eactive.apim.portal gateway: datasource: jndi-name: jdbc/dsOBP_AGW schema: AGWAPP driver-class-name: oracle.jdbc.OracleDriver hibernate-dialect: org.hibernate.dialect.Oracle12cDialect hibernate-physical-naming-strategy: com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy entity-package: com.eactive.eai.data.entity.onl,com.eactive.apim.gateway.data.statistics.entity portal: file: max-size: 10MB allowed-extensions: pdf,doc,docx,xls,xlsx,ppt,pptx,hwp,gif,jpg,jpeg,png logging: log-path: /logs/eapim auth-ttl: 300 auth: resend_limit_seconds: 30 user-approval: true password-expiration-days: 90 pages: - path-pattern: /dashboard/daily_usage method: GET view-name: "apps/mypage/dailyApiUsage :: matrix" bean: dailyApiUsageHandler role: ROLE_DASHBOARD - path-pattern: /apis/apikey/new method: GET view-name: apps/apis/mainApiKeyNew role: ROLE_API_KEY_REQUEST - path-pattern: /apis/apikey/prod method: GET view-name: apps/apis/mainApiKeyProd role: ROLE_API_KEY_REQUEST - path-pattern: /apis/common method: GET view-name: apps/apis/mainApiCommon bean: apiHandler - path-pattern: /apis/KAPAP004U3 method: GET view-name: apps/apis/KAPAP004U3 bean: apiHandler - path-pattern: /apis/KAPAP004U4 method: GET view-name: apps/apis/KAPAP004U4 bean: apiHandler - path-pattern: /apis/KAPAP004U5 method: GET view-name: apps/apis/KAPAP004U5 bean: apiHandler - path-pattern: /apis/KAPAP004U6 method: GET view-name: apps/apis/KAPAP004U6 bean: apiHandler - path-pattern: /apis/KAPAP004U7 method: GET view-name: apps/apis/KAPAP004U7 bean: apiHandler - path-pattern: /apis/KAPAP004U8 method: GET view-name: apps/apis/KAPAP004U8 bean: apiHandler - path-pattern: /apis/KAPAP004U9 method: GET view-name: apps/apis/KAPAP004U9 bean: apiHandler - path-pattern: /apis/KAPAP004U10 method: GET view-name: apps/apis/KAPAP004U10 bean: apiHandler - path-pattern: /login method: GET view-name: apps/login/login bean: LoginHandler - path-pattern: /guide method: GET view-name: apps/main/guide - path-pattern: /intro method: GET view-name: apps/main/intro - path-pattern: /service/intro method: GET view-name: apps/service/intro - path-pattern: /service/guide method: GET view-name: apps/service/guide - path-pattern: /service/oauth2-guide method: GET view-name: apps/service/oauth2-guide - path-pattern: /service/webhook-dev-guide method: GET view-name: apps/service/webhook-dev-guide - path-pattern: /dashboard method: GET view-name: apps/mypage/dashboard bean: dashboardHandler role: ROLE_DASHBOARD - path-pattern: /apis/token-spec method: GET view-name: apps/apis/static/tokenApiSpec bean: apiHandler portal_security: ROLE_USER: - ROLE_INQUIRY - ROLE_ACCOUNT ROLE_CORP_USER: - ROLE_API_KEY_REQUEST - ROLE_API_KEY_REQUEST_VIEW - ROLE_INQUIRY - ROLE_APP - ROLE_ACCOUNT ROLE_CORP_MANAGER: - ROLE_API_KEY_REQUEST - ROLE_API_KEY_REQUEST_VIEW - ROLE_WEBHOOK - ROLE_INQUIRY - ROLE_APP - ROLE_ACCOUNT - ROLE_CORP_API - ROLE_DASHBOARD - ROLE_USER_MANAGER page: home: name: "Home" path: "/" children: login: name: 로그인 path: "/login" children: dormant_account: name: "장기미사용 제한 해제" path: "/dormant_account" find_id: name: 아이디 찾기 path: "/account_recovery?tab=findId" reset_password: name: 비밀번호 초기화 path: "/account_recovery?tab=resetPassword" signup: name: 회원가입 path: "/signup" children: user: name: "개인회원가입" path: "/signup/portalUser" corp: name: "법인회원가입" path: "/signup/portalOrg" verification_email: name: "이메일 인증" path: "/signup/verification-email" decision: name: "법인회원 초대" path: "/signup/decision_process" agreements: name: 약관 path: "#" children: terms: name: "이용약관" path: "/agreements/terms" about: name: 안내 path: "#" children: intro: name: "API Portal 소개" path: "/intro" guide: name: "이용안내" path: "/guide" service: name: 서비스 소개 path: "#" children: intro: name: "API 포탈 소개" path: "/service/intro" guide: name: "회원가입 안내" path: "/service/guide" oauth2_guide: name: "OAuth2 개발가이드" path: "/service/oauth2-guide" webhook_dev_guide: name: "웹훅 개발가이드" path: "/service/webhook-dev-guide" apis: name: "API" path: "#" children: apis: name: "API 목록" path: "/apis" api_detail: name: "API 상세보기" path: "/apis/detail" api_testbed: name: "테스트베드" path: "/apis/detail/testbed" apistatus: name: "API Status" path: "/apistatus" children: issues: name: "전체 이슈 이력" path: "/apistatus/issues" community: name: 고객지원 path: "#" children: notice: name: 공지사항 path: "/portalnotice" notice_detail: name: 공지사항 path: "/portalnotice/detail" faq_list: name: FAQ path: "/faq_list" faq_detail: name: FAQ path: "/faq_view" inquiry: name: "Q&A" path: "/inquiry" inquiry_detail: name: "Q&A" path: "/inquiry/detail" inquiry_new: name: "Q&A" path: "/inquiry/new" inquiry_edit: name: "Q&A" path: "/inquiry/edit" partnership: name: "사업 제휴 신청" path: "/partnership" mypage: name: 마이페이지 path: "#" children: mypage: name: "내 정보 관리" path: "/mypage" verification_email: name: "이메일 인증" path: "/mypage/verification-email" user_list: name: "개발자 관리" path: "/users" user_detail: name: "개발자 정보" path: "/users/detail" apikey: name: "API 신청 관리" path: "/clients" app_request_detail: name: "인증키 신청 상세" path: "/clients/app_request_detail" credential_detail: name: "인증키 정보" path: "/clients/credential_detail" password_verify: name: "비밀번호 변경" path: "/password/verify" password_change: name: "비밀번호 변경" path: "/password/change" clients_register_step1: name: "앱 생성 (기본 정보)" path: "/clients/register/step1" clients_register_step2: name: "앱 생성 (API 선택)" path: "/clients/register/step2" clients_register_step3: name: "앱 생성 요청 완료" path: "/clients/register/step3" clients_modify_step1: name: "앱 수정 (기본 정보)" path: "/clients/modify/step1" clients_modify_step2: name: "앱 수정 (API 선택)" path: "/clients/modify/step2" clients_modify_step3: name: "앱 수정 요청 완료" path: "/clients/modify/step3" api_statistics: name: "이용 통계" path: "/statistics/api" webhook: name: "Webhook 관리" path: "/webhook" webhook_register_step1: name: "Webhook 신청 (기본 정보)" path: "/webhook/register/step1" webhook_register_step2: name: "Webhook 신청 (API 선택)" path: "/webhook/register/step2" webhook_register_step3: name: "Webhook 신청 완료" path: "/webhook/register/step3" webhook_modify_step1: name: "Webhook 수정 (기본 정보)" path: "/webhook/modify/step1" webhook_modify_step2: name: "Webhook 수정 (API 선택)" path: "/webhook/modify/step2" webhook_modify_step3: name: "Webhook 수정 완료" path: "/webhook/modify/step3" # 에디터 이미지 설정 (약관 이미지 표시용) editor: image: base-url: /file/view