Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ The following versions are currently covered by this security policy.

| 버전 / Version | 지원 여부 / Supported |
| --- | --- |
| `main` | |
| 이전 브랜치 또는 레거시 릴리스 / Previous branches or legacy releases | |
| `main` | 지원 / Supported |
| 이전 브랜치 또는 레거시 릴리스 / Previous branches or legacy releases | 미지원 / Not supported |

보안 수정은 현재 유지보수 중인 코드 라인을 기준으로 검토 및 반영됩니다.
Security fixes are reviewed and applied based on the currently maintained code line.
Expand All @@ -40,9 +40,6 @@ If private reporting is not available, please report the issue by email.

- **egovframesupport@gmail.com**

암호화된 통신이 필요한 경우, 최초 연락 시 해당 필요사항을 알려 주시면 적절한 방법을 협의하겠습니다.
If encrypted communication is required, please let us know in your initial contact and we will discuss an appropriate method.

---

## 제보 시 포함 사항 / What to Include in a Report
Expand Down Expand Up @@ -185,4 +182,4 @@ Where appropriate, vulnerability disclosure and identifier assignment procedures
## 정책 변경 / Policy Updates

본 보안 정책은 유지보수 상태, 제보 절차 또는 저장소 운영 방식의 변경에 따라 수정될 수 있습니다.
This security policy may be updated from time to time to reflect changes in maintenance status, reporting procedures, or repository operations.
This security policy may be updated from time to time to reflect changes in maintenance status, reporting procedures, or repository operations.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ npm install

### 2. 백엔드 프로젝트 설정

구동된 BackEnd 서버의 URL을 본 어플리케이션의 .env.development 파일의 VITE_EGOV_CONTEXT_URL에 설정해 준다.
구동된 BackEnd 서버의 URL을 본 어플리케이션의 .env.development 파일의 VITE_APP_EGOV_CONTEXT_URL에 설정해 준다.
(단, 개발환경에서는 사용하는 환경변수 정보는 .env.development, build 시 사용하는 환경변수는 .env.production 에 기입해 준다.)

```bash
Expand Down
20 changes: 19 additions & 1 deletion src/api/egovFetch.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,30 @@ import { SERVER_URL } from "../config";

import URL from "@/constants/url";
import CODE from "@/constants/code";
import { getSessionItem, setSessionItem } from "@/utils/storage";

export function getQueryString(params) {
return `?${Object.entries(params)
.map((e) => e.join("="))
.join("&")}`;
}

export function requestFetch(url, requestOptions, handler, errorHandler) {
console.groupCollapsed("requestFetch");
console.log("requestFetch [URL] : ", SERVER_URL + url);
console.log("requestFetch [requestOption] : ", requestOptions);

// Login 했을경우 JWT 설정
const sessionUser = getSessionItem("loginUser");
const sessionUserId = sessionUser?.id || null;
const jToken = getSessionItem("jToken");
if (sessionUserId != null && sessionUserId !== undefined) {
if (!requestOptions["headers"]) requestOptions["headers"] = {};
if (!requestOptions["headers"]["Authorization"])
requestOptions["headers"]["Authorization"] = null;
requestOptions["headers"]["Authorization"] = jToken;
}

//CORS ISSUE 로 인한 조치 - origin 및 credentials 추가
// origin 추가
if (!requestOptions["origin"]) {
Expand All @@ -27,7 +45,7 @@ export function requestFetch(url, requestOptions, handler, errorHandler) {
.then((resp) => {
if (Number(resp.resultCode) === Number(CODE.RCV_ERROR_AUTH)) {
alert("Login Alert"); //index.jsx라우터파일에 jwtAuthentication 함수로 공통 인증을 사용하는 코드 추가로 alert 원상복구
sessionStorage.setItem("loginUser", JSON.stringify({ id: "" }));
setSessionItem("loginUser", { id: "" });
window.location.href = URL.LOGIN;
return false;
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/config/index.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const SERVER_URL = "http://"+import.meta.env.VITE_EGOV_CONTEXT_URL; // REST API 서버 Domain URL
export const SERVER_URL = "http://" + import.meta.env.VITE_APP_EGOV_CONTEXT_URL; // REST API 서버 Domain URL
export const DEFAULT_BBS_ID = "BBSMSTR_AAAAAAAAAAAA"; // default = 공지사항 게시판 아이디
export const NOTICE_BBS_ID = "BBSMSTR_AAAAAAAAAAAA"; // 공지사항 게시판 아이디
export const GALLERY_BBS_ID = "BBSMSTR_BBBBBBBBBBBB"; // 갤러리 게시판 아이디
129 changes: 61 additions & 68 deletions src/constants/url.jsx
Original file line number Diff line number Diff line change
@@ -1,88 +1,81 @@
const URL = {
//COMMON
MAIN: "/egovframe-template-simple-react", //메인페이지
MAIN: "/", //메인페이지

LOGIN: "/egovframe-template-simple-react/login", //로그인
ERROR: "/egovframe-template-simple-react/error", //로그인
LOGIN: "/login", //로그인
SNS_NAVER_CB: "/login/naver/callback", //Sns Naver Callback
SNS_KAKAO_CB: "/login/kakao/callback", //Sns Kakao Callback
ERROR: "/error", //로그인

//ABOUT
ABOUT: "/egovframe-template-simple-react/about", //사이트소개
ABOUT_SITE: "/egovframe-template-simple-react/about/site", // 사이트소개/소개
ABOUT_HISTORY: "/egovframe-template-simple-react/about/history", // 사이트소개/연혁
ABOUT_ORGANIZATION: "/egovframe-template-simple-react/about/organization", // 사이트소개/조직소개
ABOUT_LOCATION: "/egovframe-template-simple-react/about/location", // 사이트소개/찾아오시는길
ABOUT: "/about", //사이트소개
ABOUT_SITE: "/about/site", // 사이트소개/소개
ABOUT_HISTORY: "/about/history", // 사이트소개/연혁
ABOUT_ORGANIZATION: "/about/organization", // 사이트소개/조직소개
ABOUT_LOCATION: "/about/location", // 사이트소개/찾아오시는길

//INTRO
INTRO: "/egovframe-template-simple-react/intro", //정보마당
INTRO_WORKS: "/egovframe-template-simple-react/intro/works", // 정보마당/주요사업소개
INTRO_SERVICE: "/egovframe-template-simple-react/intro/service", // 정보마당/주요서비스소개
INTRO: "/intro", //정보마당
INTRO_WORKS: "/intro/works", // 정보마당/주요사업소개
INTRO_SERVICE: "/intro/service", // 정보마당/주요서비스소개

//SUPPORT
SUPPORT: "/egovframe-template-simple-react/support", // 고객지원
SUPPORT_DOWNLOAD: "/egovframe-template-simple-react/support/download", // 고객지원/자료실
SUPPORT_DOWNLOAD_DETAIL:
"/egovframe-template-simple-react/support/download/detail", // 고객지원/자료실/상세
SUPPORT_DOWNLOAD_CREATE:
"/egovframe-template-simple-react/support/download/create", // 고객지원/자료실/등록
SUPPORT_QNA: "/egovframe-template-simple-react/support/qna", // 고객지원/묻고답하기
SUPPORT_QNA_DETAIL: "/egovframe-template-simple-react/support/qna/detail", // 고객지원/묻고답하기/상세
SUPPORT_APPLY: "/egovframe-template-simple-react/support/apply", // 고객지원/서비스신청
SUPPORT: "/support", // 고객지원
SUPPORT_DOWNLOAD: "/support/download", // 고객지원/자료실
SUPPORT_DOWNLOAD_DETAIL: "/support/download/detail", // 고객지원/자료실/상세
SUPPORT_DOWNLOAD_CREATE: "/support/download/create", // 고객지원/자료실/등록
SUPPORT_QNA: "/support/qna", // 고객지원/묻고답하기
SUPPORT_QNA_DETAIL: "/support/qna/detail", // 고객지원/묻고답하기/상세
SUPPORT_APPLY: "/support/apply", // 고객지원/서비스신청

//INFORM
INFORM: "/egovframe-template-simple-react/inform", // 알림마당
INFORM_DAILY: "/egovframe-template-simple-react/inform/daily", // 알림마당/오늘의행사
INFORM_DAILY_DETAIL: "/egovframe-template-simple-react/inform/daily/detail", // 알림마당/오늘의행사상세
INFORM_WEEKLY: "/egovframe-template-simple-react/inform/weekly", // 알림마당/금주의행사
INFORM_WEEKLY_DETAIL: "/egovframe-template-simple-react/inform/weekly/detail", // 알림마당/금주의행사상세
INFORM_NOTICE: "/egovframe-template-simple-react/inform/notice", // 알림마당/공지사항
INFORM_NOTICE_DETAIL: "/egovframe-template-simple-react/inform/notice/detail", // 알림마당/공지사항상세
INFORM_NOTICE_CREATE: "/egovframe-template-simple-react/inform/notice/create", // 알림마당/공지사항등록
INFORM_NOTICE_MODIFY: "/egovframe-template-simple-react/inform/notice/modify", // 알림마당/공지사항수정
INFORM_NOTICE_REPLY: "/egovframe-template-simple-react/inform/notice/reply", // 알림마당/공지사항답글
INFORM_GALLERY: "/egovframe-template-simple-react/inform/gallery", // 알림마당/사이트갤러리
INFORM_GALLERY_DETAIL:
"/egovframe-template-simple-react/inform/gallery/detail", // 알림마당/사이트갤러리상세
INFORM_GALLERY_CREATE:
"/egovframe-template-simple-react/inform/gallery/create", // 알림마당/사이트갤러리등록
INFORM_GALLERY_MODIFY:
"/egovframe-template-simple-react/inform/gallery/modify", // 알림마당/사이트갤러리수정
INFORM_GALLERY_REPLY: "/egovframe-template-simple-react/inform/gallery/reply", // 알림마당/사이트갤러리답글
INFORM: "/inform", // 알림마당
INFORM_DAILY: "/inform/daily", // 알림마당/오늘의행사
INFORM_DAILY_DETAIL: "/inform/daily/detail", // 알림마당/오늘의행사상세
INFORM_WEEKLY: "/inform/weekly", // 알림마당/금주의행사
INFORM_WEEKLY_DETAIL: "/inform/weekly/detail", // 알림마당/금주의행사상세
INFORM_NOTICE: "/inform/notice", // 알림마당/공지사항
INFORM_NOTICE_DETAIL: "/inform/notice/detail", // 알림마당/공지사항상세
INFORM_NOTICE_CREATE: "/inform/notice/create", // 알림마당/공지사항등록
INFORM_NOTICE_MODIFY: "/inform/notice/modify", // 알림마당/공지사항수정
INFORM_NOTICE_REPLY: "/inform/notice/reply", // 알림마당/공지사항답글
INFORM_GALLERY: "/inform/gallery", // 알림마당/사이트갤러리
INFORM_GALLERY_DETAIL: "/inform/gallery/detail", // 알림마당/사이트갤러리상세
INFORM_GALLERY_CREATE: "/inform/gallery/create", // 알림마당/사이트갤러리등록
INFORM_GALLERY_MODIFY: "/inform/gallery/modify", // 알림마당/사이트갤러리수정
INFORM_GALLERY_REPLY: "/inform/gallery/reply", // 알림마당/사이트갤러리답글

//ADMIN
ADMIN: "/egovframe-template-simple-react/admin", // 사이트관리
ADMIN_SCHEDULE: "/egovframe-template-simple-react/admin/schedule", // 사이트관리/일정관리
ADMIN_SCHEDULE_DETAIL:
"/egovframe-template-simple-react/admin/schedule/detail", // 사이트관리/일정관리상세
ADMIN_SCHEDULE_CREATE:
"/egovframe-template-simple-react/admin/schedule/create", // 사이트관리/일정관리생성
ADMIN_SCHEDULE_MODIFY:
"/egovframe-template-simple-react/admin/schedule/modify", // 사이트관리/일정관리수정
ADMIN: "/admin", // 사이트관리
ADMIN_SCHEDULE: "/admin/schedule", // 사이트관리/일정관리
ADMIN_SCHEDULE_DETAIL: "/admin/schedule/detail", // 사이트관리/일정관리상세
ADMIN_SCHEDULE_CREATE: "/admin/schedule/create", // 사이트관리/일정관리생성
ADMIN_SCHEDULE_MODIFY: "/admin/schedule/modify", // 사이트관리/일정관리수정

ADMIN_BOARD: "/egovframe-template-simple-react/admin/board", // 사이트관리/게시판생성관리 목록
ADMIN_BOARD_DETAIL: "/egovframe-template-simple-react/admin/board/detail", // 사이트관리/게시판생성관리 상세
ADMIN_BOARD_CREATE: "/egovframe-template-simple-react/admin/board/create", // 사이트관리/게시판생성관리 등록
ADMIN_BOARD_MODIFY: "/egovframe-template-simple-react/admin/board/modify", // 사이트관리/게시판생성관리 상세/수정
ADMIN_BOARD: "/admin/board", // 사이트관리/게시판생성관리 목록
ADMIN_BOARD_DETAIL: "/admin/board/detail", // 사이트관리/게시판생성관리 상세
ADMIN_BOARD_CREATE: "/admin/board/create", // 사이트관리/게시판생성관리 등록
ADMIN_BOARD_MODIFY: "/admin/board/modify", // 사이트관리/게시판생성관리 상세/수정

ADMIN_USAGE: "/egovframe-template-simple-react/admin/usage", // 사이트관리/게시판사용관리 목록
ADMIN_USAGE_DETAIL: "/egovframe-template-simple-react/admin/usage/detail", // 사이트관리/게시판사용관리 상세
ADMIN_USAGE_CREATE: "/egovframe-template-simple-react/admin/usage/create", // 사이트관리/게시판사용관리 등록
ADMIN_USAGE_MODIFY: "/egovframe-template-simple-react/admin/usage/modify", // 사이트관리/게시판사용관리 상세/수정
ADMIN_USAGE: "/admin/usage", // 사이트관리/게시판사용관리 목록
ADMIN_USAGE_DETAIL: "/admin/usage/detail", // 사이트관리/게시판사용관리 상세
ADMIN_USAGE_CREATE: "/admin/usage/create", // 사이트관리/게시판사용관리 등록
ADMIN_USAGE_MODIFY: "/admin/usage/modify", // 사이트관리/게시판사용관리 상세/수정

ADMIN_NOTICE: "/egovframe-template-simple-react/admin/notice/", // 사이트관리/공지사항관리 목록
ADMIN_NOTICE_DETAIL: "/egovframe-template-simple-react/admin/notice/detail", // 사이트관리/공지사항관리 상세
ADMIN_NOTICE_CREATE: "/egovframe-template-simple-react/admin/notice/create", // 사이트관리/공지사항관리 등록
ADMIN_NOTICE_MODIFY: "/egovframe-template-simple-react/admin/notice/modify", // 사이트관리/공지사항관리 수정
ADMIN_NOTICE_REPLY: "/egovframe-template-simple-react/admin/notice/reply", // 사이트관리/공지사항관리 답글 등록
ADMIN_NOTICE: "/admin/notice", // 사이트관리/공지사항관리 목록
ADMIN_NOTICE_DETAIL: "/admin/notice/detail", // 사이트관리/공지사항관리 상세
ADMIN_NOTICE_CREATE: "/admin/notice/create", // 사이트관리/공지사항관리 등록
ADMIN_NOTICE_MODIFY: "/admin/notice/modify", // 사이트관리/공지사항관리 수정
ADMIN_NOTICE_REPLY: "/admin/notice/reply", // 사이트관리/공지사항관리 답글 등록

ADMIN_GALLERY: "/egovframe-template-simple-react/admin/gallery", // 사이트관리/사이트갤러리관리
ADMIN_GALLERY_DETAIL: "/egovframe-template-simple-react/admin/gallery/detail", // 사이트관리/사이트갤러리관리 상세
ADMIN_GALLERY_CREATE: "/egovframe-template-simple-react/admin/gallery/create", // 사이트관리/사이트갤러리관리 등록
ADMIN_GALLERY_MODIFY: "/egovframe-template-simple-react/admin/gallery/modify", // 사이트관리/사이트갤러리관리 수정
ADMIN_GALLERY_REPLY: "/egovframe-template-simple-react/admin/gallery/reply", // 사이트관리/사이트갤러리관리 답글 등록
ADMIN_GALLERY: "/admin/gallery", // 사이트관리/사이트갤러리관리
ADMIN_GALLERY_DETAIL: "/admin/gallery/detail", // 사이트관리/사이트갤러리관리 상세
ADMIN_GALLERY_CREATE: "/admin/gallery/create", // 사이트관리/사이트갤러리관리 등록
ADMIN_GALLERY_MODIFY: "/admin/gallery/modify", // 사이트관리/사이트갤러리관리 수정
ADMIN_GALLERY_REPLY: "/admin/gallery/reply", // 사이트관리/사이트갤러리관리 답글 등록

ADMIN_MANAGER: "/egovframe-template-simple-react/admin/manager/", // 사이트관리/사이트관리자 암호변경 기능

ADMIN_MEMBERS: "/admin/members/", // 사이트관리/회원관리 목록기능
ADMIN_MANAGER: "/admin/manager", // 사이트관리/사이트관리자 암호변경 기능
ADMIN_MEMBERS: "/admin/members", // 사이트관리/회원관리 목록기능
ADMIN_MEMBERS_DETAIL: "/admin/members/detail", // 사이트관리/회원관리 상세
ADMIN_MEMBERS_CREATE: "/admin/members/create", // 사이트관리/회원관리 등록
ADMIN_MEMBERS_MODIFY: "/admin/members/modify", // 사이트관리/회원관리 상세/수정
Expand All @@ -92,5 +85,5 @@ const URL = {
MYPAGE_CREATE: "/mypage/create", // 고객지원/마이페이지/회원 등록
};


export default URL;
Loading