ARKO 리뉴얼 — 문화품앗이/자원봉사 포털 (Spring 3 + iBatis + eGov 2.7)
Go to file
infraurp 94da0fe9ae 개인정보보호 기능개선 3차 — 접근통제 정책 화면 외 미커밋 산출물 일괄 커밋
5개 세션에 걸쳐 쌓인 미커밋 변경분을 한 번에 정리한다. 주 산출물은 이번 세션의
접근통제 정책 적용(SER-001 요건 4·5)이고, 나머지는 앞선 세션들의 백로그다.

■ 접근통제 정책 적용 (SER-001 요건 4·5, 이번 세션)
「개인정보보호강화 파일럿 개발항목」 접근통제 정책 적용(Action2) 시안 반영.

- ACCESS_CONTROL_POLICY(단일행) + 관리자 화면 신규 (메뉴 9100047)
  · 계정 잠금: 인증 실패 임계값(10 -> 5), 잠금 해제 방식(관리자화면+이력 / +사유필수)
  · 자동 로그아웃: 미사용 시간(60 -> 30분), 만료 임박 안내 사용여부·시점
  · 세션 재발급: 2차 인증 성공 시 세션 고정(Session Fixation) 차단 여부
- SessionPolicyInterceptor 신규 — /mnt/ 요청마다 정책값으로 세션 타임아웃 적용.
  web.xml 재배포 없이 값이 바뀐다(2025.9 자료요청 3번 "시간 설정 기능 없음" 해소).
  web.xml <session-timeout>30 은 이제 폴백값이다.
- 잠금 임계값 저장 시 인증 경로가 읽는 LOGIN_LOCK_COUNT 를 함께 동기화.
  정책 테이블만 고치면 화면 숫자만 바뀌고 실제 인증은 옛 값을 계속 쓰기 때문이다.
- 관리자 상단(top.jsp): 로그인 후 경과시간 + 자동 로그아웃 잔여 카운트다운,
  만료 임박 안내와 연장(/mnt/session/extend.do).
  세션 상태를 주기 폴링하지 않는다 — 그 요청 자체가 세션을 갱신해
  '미사용 자동 로그아웃'이 영원히 오지 않기 때문이다.
- 자동 로그아웃 시 로그인 화면 이동: actionLogout.do?expired=Y 로 세션 invalidate 후
  로그인 화면 + 사유 안내. 수동 로그아웃(프론트 메인 이동)은 기존 동작 유지.
- 계정잠금관리: 정책이 '사유 필수'면 해제 사유 강제, ACCOUNT_UNLOCK_HISTORY 적재.

■ EgovLoginLogAspect fail-safe (회귀 수정)
접속기록 적재 예외가 @Before 어드바이스 밖으로 나가 로그인·로그아웃이 통째로 500 이
되고 있었다(로컬: MySQL 8 + mysql-connector 5.1.17 의 tx_isolation 조회 실패).
클래스 Javadoc 이 이미 fail-safe 를 명세하고 있었으나 구현이 따르지 않았다.
try/catch 로 인증 흐름을 살리되, 접속기록 유실은 SFR-004 직결이라 ERROR 로 남긴다.

■ 앞선 세션 백로그
- 접속기록(SFR-004): 조회·CSV 비동기 다운로드(PDAL_DOWNLOAD_JOB), 업무유형 매핑
- 로그인 접속기록(#62): COMTNLOGINLOG 접속IP·접속ID 유실 복구 + 접속위치 스냅샷
- 권한관리(SFR-001): 권한변경 이력 CSV 비동기 다운로드, 신청·승인 워크플로 화면 정리
- 미사용계정(SFR-002): 현황 화면 시안 반영(요약·역할·잠금/말소·조치 이력)
- 회원정보 암호화(추가제안 Action4): AES 암복호화·검색용 해시, 이관 배치와 사전 백업

■ 커밋 제외
font/(글꼴 설치본 22M), 제안서 문서(pptx/hwp), .claude/(하네스) 는 소스가 아니라 제외.
.claude/ 버전관리 여부는 별도 판단이 필요하다.

배포 산출물: _workspace/deploy/20260810_1300/ (DELTA.md, sql/, APPLY_LOG.md)
브라우저 검증(2단계 인증 필요)은 APPLY_LOG.md B1~B7 로 남겨둔다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 13:58:58 +09:00
.gitea/workflows 배포 파이프라인 결함 3건 수정 2026-07-30 13:44:50 +09:00
deploy 배포 파이프라인 결함 3건 수정 2026-07-30 13:44:50 +09:00
src 개인정보보호 기능개선 3차 — 접근통제 정책 화면 외 미커밋 산출물 일괄 커밋 2026-08-10 13:58:58 +09:00
WebContent Initial commit - ARKO (대용량 미디어 파일 제외) 2026-06-15 14:24:16 +09:00
.gitattributes 개발서버(csv.zioinfo.co.kr) 배포 구성 및 Gitea Actions 파이프라인 추가 2026-07-29 15:44:02 +09:00
.gitignore 개인정보보호 기능개선 2차 구현 — 접속기록 안정화·솔트 인증·관리자 화면 4종 2026-08-07 15:05:03 +09:00
.pmd Initial commit - ARKO (대용량 미디어 파일 제외) 2026-06-15 14:24:16 +09:00
CLAUDE.md 개인정보보호 기능개선 2차 구현 — 접속기록 안정화·솔트 인증·관리자 화면 4종 2026-08-07 15:05:03 +09:00
pom.xml 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00
pom.xml.20250515 Initial commit - ARKO (대용량 미디어 파일 제외) 2026-06-15 14:24:16 +09:00
pom.xml.20250515_2 Initial commit - ARKO (대용량 미디어 파일 제외) 2026-06-15 14:24:16 +09:00
개인정보보호_개발진행현황.md 개인정보보호 기능개선 3차 — 접근통제 정책 화면 외 미커밋 산출물 일괄 커밋 2026-08-10 13:58:58 +09:00
개인정보보호_개발항목.docx 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00
개인정보보호_비밀번호해시_점검노트.md 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00
개인정보보호_시스템로그삭제정책_분리노트.md 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00
개인정보보호_인증정보저장정책_점검노트.md 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00
디자인.md 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록) 2026-07-22 18:03:02 +09:00