From 6cf389c76f564144add41228c0955d6b24eb6ef3 Mon Sep 17 00:00:00 2001 From: dongsilove Date: Mon, 20 Oct 2025 21:04:38 +0900 Subject: [PATCH 1/5] =?UTF-8?q?wr=20lyStngs=20=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/fo/src/entities/auth/lib/auth-wrapper.tsx | 2 ++ apps/wr/app/(map-layout)/service/map.ts | 5 ++--- apps/wr/src/entities/auth/lib/auth-wrapper.tsx | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/fo/src/entities/auth/lib/auth-wrapper.tsx b/apps/fo/src/entities/auth/lib/auth-wrapper.tsx index fa370fa32..df730b5cb 100644 --- a/apps/fo/src/entities/auth/lib/auth-wrapper.tsx +++ b/apps/fo/src/entities/auth/lib/auth-wrapper.tsx @@ -42,6 +42,8 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => { setUserInfo(null); const hostname = window.location.hostname; + console.log("hostname:", hostname); + console.log("LOGIN_PAGE_URL:", LOGIN_PAGE_URL); // 개발 환경에서는 localhost 도메인 사용 //if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") diff --git a/apps/wr/app/(map-layout)/service/map.ts b/apps/wr/app/(map-layout)/service/map.ts index 79ba7fe9e..8c22207be 100644 --- a/apps/wr/app/(map-layout)/service/map.ts +++ b/apps/wr/app/(map-layout)/service/map.ts @@ -2,9 +2,8 @@ /** * 관망도 API */ - const API_URL = `${process.env.NEXT_PUBLIC_SEWERAGE_API_URL}/v1/map` -//const API_URL = "http://con.mind-one.co.kr:11083/sewerage-service/api/v1/map"; - +const API_URL = '/sewerage-service/v1/map'; + export type LyrStngProps = { lyr_sn: string lyr_nm: string diff --git a/apps/wr/src/entities/auth/lib/auth-wrapper.tsx b/apps/wr/src/entities/auth/lib/auth-wrapper.tsx index 12904f8b8..497174fb4 100644 --- a/apps/wr/src/entities/auth/lib/auth-wrapper.tsx +++ b/apps/wr/src/entities/auth/lib/auth-wrapper.tsx @@ -44,6 +44,8 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => { setUserInfo(null); const hostname = window.location.hostname; + console.log("hostname:", hostname); + console.log("LOGIN_PAGE_URL:", LOGIN_PAGE_URL); // 개발 환경에서는 localhost 도메인 사용 //if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") From 2e010683986816e93297a5b156dbc65e94980d7a Mon Sep 17 00:00:00 2001 From: yschoi Date: Sun, 26 Oct 2025 17:36:24 +0900 Subject: [PATCH 2/5] =?UTF-8?q?geoserver=20url=20=ED=97=A4=EB=8D=94=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/fo/middleware.ts | 3 ++- apps/sn/middleware.ts | 3 ++- apps/wr/middleware.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/fo/middleware.ts b/apps/fo/middleware.ts index cca7ecd22..870997941 100644 --- a/apps/fo/middleware.ts +++ b/apps/fo/middleware.ts @@ -91,7 +91,8 @@ export function middleware(req: NextRequest) { } console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/sewerage-service")) { diff --git a/apps/sn/middleware.ts b/apps/sn/middleware.ts index 13b94a86e..97f4fcce7 100644 --- a/apps/sn/middleware.ts +++ b/apps/sn/middleware.ts @@ -99,7 +99,8 @@ export function middleware(req: NextRequest) { } console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/attach-service") diff --git a/apps/wr/middleware.ts b/apps/wr/middleware.ts index 40bdd0f20..a5956ee0b 100644 --- a/apps/wr/middleware.ts +++ b/apps/wr/middleware.ts @@ -122,7 +122,8 @@ export function middleware(req: NextRequest) { } //console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/sewerage-service")) { From d89b157999be6d3cb57acf848d32368def054c45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A7=80=EC=B2=A0?= Date: Mon, 27 Oct 2025 10:11:36 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/cm/app/api/proxy/[...url]/route.ts | 8 ++++++++ apps/cs/app/api/proxy/[...url]/route.ts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/apps/cm/app/api/proxy/[...url]/route.ts b/apps/cm/app/api/proxy/[...url]/route.ts index 761991e39..ca15a1447 100644 --- a/apps/cm/app/api/proxy/[...url]/route.ts +++ b/apps/cm/app/api/proxy/[...url]/route.ts @@ -101,11 +101,19 @@ async function handler( [AUTH_USER_ID]: userId, ...responseData, // 2FA 관련 추가 데이터 포함 }); + const hostname = window.location.hostname; + let domain = hostname === "localhost" || hostname === "127.0.0.1" ? undefined : hostname; + + // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 + if (hostname.includes("hasuon.or.kr")) { + domain = ".hasuon.or.kr"; + } if (refreshToken) { cookieStore.set(REFRESH_TOKEN, refreshToken, { httpOnly: true, sameSite: "lax", + domain: domain, path: "/", }); } diff --git a/apps/cs/app/api/proxy/[...url]/route.ts b/apps/cs/app/api/proxy/[...url]/route.ts index d3092c5c1..07fa4376f 100644 --- a/apps/cs/app/api/proxy/[...url]/route.ts +++ b/apps/cs/app/api/proxy/[...url]/route.ts @@ -60,10 +60,20 @@ async function handler( [AUTH_USER_ID]: userId, }); + + const hostname = window.location.hostname; + let domain = hostname === "localhost" || hostname === "127.0.0.1" ? undefined : hostname; + + // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 + if (hostname.includes("hasuon.or.kr")) { + domain = ".hasuon.or.kr"; + } + if (refreshToken) { cookieStore.set(REFRESH_TOKEN, refreshToken, { httpOnly: true, sameSite: "lax", + domain: domain, path: "/", }); } @@ -83,6 +93,7 @@ async function handler( } } + export async function POST( request: Request, props: { params: Promise<{ url: string[] }> }, From 0fd1fa74bab31b3b32887330dddd966d5455901e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A7=80=EC=B2=A0?= Date: Mon, 27 Oct 2025 17:53:55 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=9A=B0=ED=8E=B8=EB=B2=88=ED=98=B8?= =?UTF-8?q?=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/cm/app/api/proxy/[...url]/route.ts | 8 -------- apps/cs/app/api/proxy/[...url]/route.ts | 9 +-------- apps/cs/src/pages/users/api/zip-service.ts | 4 ++++ apps/cs/src/pages/users/ui/zip-search-dialog.tsx | 16 ++++++++-------- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/apps/cm/app/api/proxy/[...url]/route.ts b/apps/cm/app/api/proxy/[...url]/route.ts index ca15a1447..761991e39 100644 --- a/apps/cm/app/api/proxy/[...url]/route.ts +++ b/apps/cm/app/api/proxy/[...url]/route.ts @@ -101,19 +101,11 @@ async function handler( [AUTH_USER_ID]: userId, ...responseData, // 2FA 관련 추가 데이터 포함 }); - const hostname = window.location.hostname; - let domain = hostname === "localhost" || hostname === "127.0.0.1" ? undefined : hostname; - - // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 - if (hostname.includes("hasuon.or.kr")) { - domain = ".hasuon.or.kr"; - } if (refreshToken) { cookieStore.set(REFRESH_TOKEN, refreshToken, { httpOnly: true, sameSite: "lax", - domain: domain, path: "/", }); } diff --git a/apps/cs/app/api/proxy/[...url]/route.ts b/apps/cs/app/api/proxy/[...url]/route.ts index 07fa4376f..7442c702f 100644 --- a/apps/cs/app/api/proxy/[...url]/route.ts +++ b/apps/cs/app/api/proxy/[...url]/route.ts @@ -61,19 +61,12 @@ async function handler( }); - const hostname = window.location.hostname; - let domain = hostname === "localhost" || hostname === "127.0.0.1" ? undefined : hostname; - - // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 - if (hostname.includes("hasuon.or.kr")) { - domain = ".hasuon.or.kr"; - } if (refreshToken) { cookieStore.set(REFRESH_TOKEN, refreshToken, { httpOnly: true, sameSite: "lax", - domain: domain, +// domain: domain, path: "/", }); } diff --git a/apps/cs/src/pages/users/api/zip-service.ts b/apps/cs/src/pages/users/api/zip-service.ts index 211638344..ebc7e8c91 100644 --- a/apps/cs/src/pages/users/api/zip-service.ts +++ b/apps/cs/src/pages/users/api/zip-service.ts @@ -10,6 +10,8 @@ export interface ZipSearchParams extends PageableParams { roadNm?: string; // 도로명 stdgNm?: string; // 법정동명 dongNm?: string; // 행정동명 + bldgNoMno?: number | null; // 빌딩본번 + bldgNoSno?: number | null; // 빌딩딩부번 lotnoMno?: number | null; // 지번본번 lotnoSno?: number | null; // 지번부번 } @@ -21,6 +23,8 @@ export interface Zip { sggNm: string; emdNm: string; roadNm: string; + bldgNoMno: number; + bldgNoSno: number; lotnoMno: number; lotnoSno: number; lotno: string; diff --git a/apps/cs/src/pages/users/ui/zip-search-dialog.tsx b/apps/cs/src/pages/users/ui/zip-search-dialog.tsx index baab27619..bf2160ea8 100644 --- a/apps/cs/src/pages/users/ui/zip-search-dialog.tsx +++ b/apps/cs/src/pages/users/ui/zip-search-dialog.tsx @@ -39,8 +39,8 @@ function ZipSearchDialog({ onSelectAddress }: ZipSearchDialogProps) { }); const [searchQuery, setSearchQuery] = useState({ roadNm: "", - lotnoMno: null, - lotnoSno: null, + bldgNoMno: null, + bldgNoSno: null, }); const hasFetchedOnce = useRef(false); @@ -156,17 +156,17 @@ function ZipSearchDialog({ onSelectAddress }: ZipSearchDialogProps) {
- + { const value = e.target.value ? parseInt(e.target.value) : null; setSearchQuery({ ...searchQuery, - lotnoMno: value, + bldgNoMno: value, }); }} placeholder="예: 123" @@ -175,17 +175,17 @@ function ZipSearchDialog({ onSelectAddress }: ZipSearchDialogProps) {
- + { const value = e.target.value ? parseInt(e.target.value) : null; setSearchQuery({ ...searchQuery, - lotnoSno: value, + bldgNoSno: value, }); }} placeholder="예: 45" From 762c97d18664427f4869a4e229956d97196dfc73 Mon Sep 17 00:00:00 2001 From: ljpark Date: Mon, 27 Oct 2025 20:26:05 +0900 Subject: [PATCH 5/5] =?UTF-8?q?page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/fo/app/pages/(with-layout)/test/page.tsx | 22 +++++++++++++++++++ apps/fo/middleware.ts | 18 +++++++-------- 2 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 apps/fo/app/pages/(with-layout)/test/page.tsx diff --git a/apps/fo/app/pages/(with-layout)/test/page.tsx b/apps/fo/app/pages/(with-layout)/test/page.tsx new file mode 100644 index 000000000..86689df10 --- /dev/null +++ b/apps/fo/app/pages/(with-layout)/test/page.tsx @@ -0,0 +1,22 @@ +"use client"; +import React from "react"; + +export default function TestPage() { + + const handleFindUser = () => { + fetch('/operation-service/api/v1/fclt/flow/1/10/2024', { + method: "GET", + }).then((data) => { + console.log(data); + }); + }; + + return ( +
+ 여기를 click + +
+ ); +} \ No newline at end of file diff --git a/apps/fo/middleware.ts b/apps/fo/middleware.ts index 4f491145f..f9891ff7d 100644 --- a/apps/fo/middleware.ts +++ b/apps/fo/middleware.ts @@ -36,15 +36,15 @@ function rewriteWith(url: string, req: NextRequest, withAuth = false): NextRespo const headers = withAuth ? buildAuthHeaders(req) : new Headers(req.headers); - if (url.indexOf("/operation-service") !== -1) { - // x-forwarded- 로 시작하는 헤더의 첫 번째 값만 남김 - for (const [key, value] of headers.entries()) { - if (key.startsWith('x-forwarded-') && value.includes(',')) { - const first = (value?.split(',')[0] || '').trim(); - headers.set(key, first); - } - } - } + // if (url.indexOf("/operation-service") !== -1) { + // // x-forwarded- 로 시작하는 헤더의 첫 번째 값만 남김 + // for (const [key, value] of headers.entries()) { + // if (key.startsWith('x-forwarded-') && value.includes(',')) { + // const first = (value?.split(',')[0] || '').trim(); + // headers.set(key, first); + // } + // } + // } return NextResponse.rewrite(new URL(url), { headers }); }