Commit Graph

3 Commits

Author SHA1 Message Date
infraurp
65bbe591d1 인증 실패 이력 IP 기록·보관기간·조회화면 구현 (#22-1)
All checks were successful
deploy-dev / deploy (push) Successful in 42s
#22(실패이력 활성 경로 이설)로 적재는 살아났으나 LOGIN_HISTORY가
ID/CREATE_DATE/GUBUN 3컬럼뿐이라 (1) 접속 IP 미기록 (2) 로그인 성공 시
당일 이력 DELETE로 무차별 대입 흔적 소멸 문제가 있었다.

- DDL: LOGIN_HISTORY에 CONECT_IP(45)/RESET_YN + 인덱스 2종,
  ACCOUNT_MNG_POLICY.LOGIN_HIST_KEEP_DAY(기본 730일) 추가
- 적재: insertFailHistory 컬럼 명시 전환 + ClientIpResolver IP 세팅
  (종전 무컬럼 VALUES(3값)은 컬럼 추가 시 ERROR 1136 — DDL과 한 쌍)
- 보존: 성공 시 DELETE -> RESET_YN='Y' 소프트 리셋.
  selectFailCount가 RESET_YN='N'만 세므로 계정잠금 동작은 종전과 동일
- 화면: /mnt/sec/loginFailHistory/listView.do (계정·구분·IP·기간·리셋여부
  검색 + 페이징), 메뉴 9100039 + left.jsp 분기
- 정책화면: 계정 관리 정책에 보관기간 입력 항목·검증 추가
- 배치: purgeExpiredLoginFailHistoryScheduler 매일 03:30, 1회 5,000건 상한
- Mysql/Oracle sqlmap 쌍 + sql-map-config 등록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 14:48:24 +09:00
infraurp
462e55bcd5 권한 신청·승인 워크플로 화면 및 2단계인증 UX 개선 (SFR-001)
관리자 메뉴에 권한 신청·승인 화면(#46)을 노출하고 신청/승인 처리 로직을 보강했으며,
2단계 인증(OTP) 등록·인증 화면의 사용성을 개선했다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 14:52:16 +09:00
infraurp
2a2ab99d10 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록)
권한관리(SFR-001):
- getAuthorities() 구현(EgovUserAuthorityDAO), AuthorityInterceptor 역할별 URL 접근제어
  (COMTNMENUCREATDTLS×COMTNMENUINFO×COMTNPROGRMLIST 메뉴권한 기반, 캐시/TTL, ROLE_ADMIN 바이패스)
- 권한 신청·승인 워크플로 + AUTHOR_CHANGE_HISTORY 이력(3년 보관), 조회·다운로드
계정관리(SFR-002): 계정관리정책, 장기미사용(휴면) 확장(취급자 포함)·사전알림, 계정잠금 5회
인증체계(SFR-003): 로그인 통합 2단계 인증(SecondFactorInterceptor+SecondFactorController),
  OTP QR 등록(ZXing)·비밀키 DB 영속(OTP_DEVICE, AES-GCM), 세션재발급(고정공격 방지), 자동로그아웃 30분
접속기록(SFR-004): PERSONAL_DATA_ACCESS_LOG(월파티션), PersonalDataLogAspect 한정수집,
  SHA-256 해시체인 무결성, 업무유형매핑, IP 취득보정, 비정상접근 탐지, 정기점검 리포트
DB: privacy DDL 11종 + 설치용 통합 SQL(privacy.install_mysql.sql, DDL+시드 DML)
빌드복구: pom.xml 시스템 jar/JAXB 선언, iBatis2 SQL주석 '#'→'No.' 정정

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 18:03:02 +09:00