diff --git a/src/main/java/com/eactive/apim/portal/djb/testbed/config/DjbTestbedGatewayProperty.java b/src/main/java/com/eactive/apim/portal/djb/testbed/config/DjbTestbedGatewayProperty.java index dc6dbee..836ab16 100644 --- a/src/main/java/com/eactive/apim/portal/djb/testbed/config/DjbTestbedGatewayProperty.java +++ b/src/main/java/com/eactive/apim/portal/djb/testbed/config/DjbTestbedGatewayProperty.java @@ -35,8 +35,8 @@ public class DjbTestbedGatewayProperty { public static final String DEFAULT_BASE_URL = "PortalMock"; public static final String DEFAULT_TIMEOUT_SEC = "10"; - public static final String DEFAULT_USE_PROXY = "Y"; - public static final String DEFAULT_TOKEN_USE_PROXY = "Y"; + public static final String DEFAULT_USE_PROXY = "true"; + public static final String DEFAULT_TOKEN_USE_PROXY = "true"; private static final int TIMEOUT_FALLBACK_MS = 10_000; /** GW 모드 실제 토큰 엔드포인트 경로 (DJERP_4000 OAuth 발급가이드 v0.2). */ public static final String DEFAULT_TOKEN_PATH = "/dj/oauth/token"; @@ -69,21 +69,39 @@ public class DjbTestbedGatewayProperty { /** * 테스트베드 API 호출 시 서버 프록시({@code /api/call-api}) 사용 여부. - * {@code N} 이면 브라우저에서 대상 주소로 직접 호출(CORS 허용 필요). 기본 Y. + * {@code false} 이면 브라우저에서 대상 주소로 직접 호출(CORS 허용 필요). 기본 true. */ public boolean useProxy() { - return !"N".equalsIgnoreCase(resolve(KEY_USE_PROXY, DEFAULT_USE_PROXY, - "테스트베드 API 호출 시 서버 프록시(/api/call-api) 사용 여부(Y/N). N 이면 브라우저에서 직접 호출.")); + return parseBool(resolve(KEY_USE_PROXY, DEFAULT_USE_PROXY, + "테스트베드 API 호출 시 서버 프록시(/api/call-api) 사용 여부(true/false). false 이면 브라우저에서 직접 호출."), true); } /** * 토큰 발급 시 서버 프록시({@code /api/call-api}) 사용 여부. API 호출 프록시와 별개로 설정. - * {@code N} 이면 브라우저에서 토큰 URL 로 직접 호출(CORS 허용 필요). 기본 Y. + * {@code false} 이면 브라우저에서 토큰 URL 로 직접 호출(CORS 허용 필요). 기본 true. * (mock 모드는 포탈 자체 mock 토큰이라 프록시 유지가 자연스럽고, 실 GW 는 직접호출로 뺄 수 있음.) */ public boolean tokenUseProxy() { - return !"N".equalsIgnoreCase(resolve(KEY_TOKEN_USE_PROXY, DEFAULT_TOKEN_USE_PROXY, - "테스트베드 토큰 발급 시 서버 프록시(/api/call-api) 사용 여부(Y/N). N 이면 브라우저에서 직접 호출.")); + return parseBool(resolve(KEY_TOKEN_USE_PROXY, DEFAULT_TOKEN_USE_PROXY, + "테스트베드 토큰 발급 시 서버 프록시(/api/call-api) 사용 여부(true/false). false 이면 브라우저에서 직접 호출."), true); + } + + /** + * 프로퍼티 값을 boolean 으로 해석. 레거시 {@code Y/N} 값도 자동 변환한다. + * {@code true}/{@code Y} → true, {@code false}/{@code N} → false, 그 외/null → {@code def}. + */ + private static boolean parseBool(String v, boolean def) { + if (v == null) { + return def; + } + String s = v.trim(); + if (s.equalsIgnoreCase("true") || s.equalsIgnoreCase("Y")) { + return true; + } + if (s.equalsIgnoreCase("false") || s.equalsIgnoreCase("N")) { + return false; + } + return def; } /** 테스트베드 프록시 연결/응답 타임아웃(ms). 미설정/파싱 실패 시 10초. (단위 저장: 초) */