Implement Redis-based user-info with sliding expiration - Read user data directly from Redis instead of calling SecurityService - Implement sliding session expiration (reset TTL on each read) - Redirect to login site if session expired - Enhanced logging for debugging
CRITICAL FIX v2 : 로그인 API에서 OTK 소비를 제거 - 성공적인 로그인 후, 사용자의 이전 OTK를 사용하기 전에 validate-otk 엔드 포인트를 호출하고 OTK를 소모하여 사용할 수 있습니다
CRITICAL FIX: OTK prematurely 소모된 endpoints 제거
뿌리 원인 발견: - /api/validate and /api/validate-otk in kamo-login은 SecurityService를 호출했습니다. - 로그인 후 OTK IMMEDIATELY를 소모 (사용자가 그것을 사용할 수 있음) - SecurityService 로그는 생성...
ESLint 오류 수정: checkExistingSession state 사용
수정 : - 기존 *** 세션을 검사하는 동안 로딩 스피너 표시 - 자동 로그인 체크 중 로그인 양식 - 더 나은 UX 제공 (사용자는 '체크 세션...' 메시지) 이 빌드 오류를 수정: 'checkingExistingSession'는 값을 할당하지만 사용하지 않는
자동 로그인 및 로그 아웃 엔드 포인트에 대한 누락 된 Redis 라이브러리 추가
오류 수정 : - 읽기 / 쓰기 Redis 클라이언트 헬퍼로 app/lib/redis.ts 만들기 - getRedisReadClient() 및 getRedisWriteClient() 제공 - /api/auto-login 및 /api/logout endpoints에 의해 요구되는 - ka...
Update logout flow to use direct Redis access
Logout Flow Changes: - /logout (page): DELETE Redis session via /api/logout, forward to login/logout - /api/logout: Direct Redis DELETE (no SecurityService call...
SSO 자동 로그인 및 전체 로그아웃 흐름 구현
자동 로그인 기능: - 로그인 페이지로드에 대한 기존 *** 쿠키 확인 - Redis와 직접 검증된 세션 - 유효한 경우, 내부 앱에 새로운 OTK 및 자동 간접을 만듭니다. - 재입력 자격 없이 원활한 재입력 제공 새로운 엔드포인트: - /api/auto-login: Validate...
FORCE REBUILD: Add extensive logging to /api/validate (Direct Redis)
Critical Change: - This endpoint does NOT call SecurityService - It queries Redis DIRECTLY for OTK validation - Extensive logging added to trace every step New...
/validate-otk endpoint에서 쿠키 설정 제거
공급 능력: - /validate-otk endpoint 이제는 반환 *** ID 및 TTL - 더 이상 세트 쿠키 없음 (Next.js는 이것을 직접 취급합니다) - KSessionService에 getSessionTtlSeconds() 헬퍼 메소드 추가 지원 : - Next.js는...
Make *** cookie client-accessible & validate OTK directly in Next.js
Major Simplifications: - *** cookie is now client-accessible (httpOnly: false) - Both Next.js and Java can read the cookie directly - Cookie expires in 30 minut...
*** ID 길이 512에서 128 문자로 축소
변경 사항: -*** ID LENGTH: 512 -> 128 (에트로피의 64 바이트) - 모든 문서 및 의견 업데이트 - 전체 128-char ID를 표시하는 업데이트 된 로깅 - OTK 길이는 64자 (변경되지 않음) 남아 있습니다. 보안: 512 비트 entropy (128 헥스...
Fix build error and change *** length to 128 chars
Build Fixes: - Escape apostrophe in validate page (') - Add searchParams dependency to useEffect *** Length Change: - Update expected *** length from 512 ...
Add comprehensive debugging UI to validate page
- Show component render count and validation attempt count - Display OTK information and length validation - Show retrieved *** ID (512 chars) when successful -...
*** ID 길이를 512 문자로 강화 된 보안
- *** ID: 512-char hex 문자열 (보안 임의 데이터 256 바이트) - OTK ID: 64-char hex 문자열 (32 바이트 - 변경되지 않음) - configurable 길이를 허용하기 위해 createSecureHexString()을 업데이트했습니다. - 모든 유...
Fix OTK validation duplicate calls issue
- Add useRef to track validation attempts - Prevent duplicate API calls (critical for one-time keys) - Change useEffect deps to empty array (run once on mount) ...
Update OTK validation to use new *** session model
- Extract ***Id from JSON response body (not Set-Cookie header) - SecurityService now returns { success, message, ***Id } - Set *** cookie with 64-char GUID fro...
새로운 *** 세션 모델 64char GUID
- 간단한 세션 관리용 KSessionService 추가 - *** ID는 이제 64char hex 문자열입니다 (KToken을 인코딩하지 않음) - Redis 키 형식 : ***<64-char-guid> - Redis 값: 사용자 데이터와 JSON (userID, memberID, 권...
Require MemberRightsApplied column name to avoid MySQL에 등록된 키워드 - MySQL을 피하기 위해 오른쪽에서 열 이름을 변경 - 초기화 동안 테이블 생성 오류를 해결
구성 요소 초기화 및 데이터베이스 스키마 문제 수정 - @Builder를 추가하십시오. OrgFeature 및 Member recordState 필드에 기본값은 적절한 초기화를 보장하기 위해 - require MemberRightsApplied entity: change @JoinColumn to @Column for enum field - EmbRecordState.isActive에 @ColumnDefault annotation을 추가합니다 데이터베이스 레벨 디폴트 - Lombok과 충돌하는 사용자 정의 OrgFeatureBuilder 메서드를 제거 - MemberService에서 사용되지 않는 getPasswordEncoder 메소드를 제거
모든 환경의 암호 인코더 구성을 표준화 - 후추를 설정 *********** 그리고 지역 (application.yml) 및 k8s (configmap.yaml) 구성 모두에서 310000에 침식 KamoInitializerService와 일관성을 보장하기 위해
KamoInitializerService와 일치하는 암호 후추 업데이트 - 서비스 전체에 암호 해싱 일관성을 보장하기 위해 'f09kf32j0sdfsdfd'로 후추 설정
테스트 / 관리자를위한 암호 해시 발전기 엔드 포인트 - POST *********** 적절한 PBKDF2 해시 만들기
계정 유효성 검사 실패에 대한 특정 오류 메시지 제공 - 사용자는 지금 정확한 이유를 참조하십시오 *************** 일반 메시지
JSON에서 x-www-form-urlencoded로 로그인 폼 인코딩을 수정하십시오. SecurityService endpoint
AuthorizationService Dependencies 제거, SecurityService로 전환
- 복잡한 AuthorizationService 인증 논리 및 도메인 리디렉션 제거 - SecurityService API 호출을 가진 OAuth2 공급자 탐지를 대체하십시오 - 조직별 시각적 브랜딩을 위한 OAuth2 버튼 유지 (비 기능) - SecurityService 로그인 흐름...
Securityservice-deployment 대신 kamowssecurity-deployment를 사용하도록 워크플로우를 업데이트하십시오
Redis SSL 구성을 k8s ConfigMap 수정 - boolean 변환 오류를 방지하기 위해 SSL.enabled 속성을 추가
Redis 구성
- SSL 구성 제거 (타입 변환 오류 발생) - 로컬 redis-slave 서비스에 대한 암호 요구 사항 제거 - 호스트 설정 *********** (각 클러스터에 로컬) - 비밀번호가 없는 Redis로 작업할 수 있도록 설정 단순화
데이터베이스 연결 설정
- 10.8.0.1:3306에 직접 연결하는 데이터베이스 URL 업데이트 - 루트에서 kamo로 사용자의 변경 - root-password에서 DB PASSWORD로 비밀 참조 - 배포에서 mysql-auth 비밀 의존성을 제거
Fix SecurityService 배포 구성
- 데이터베이스, Redis 및 외부 서비스 구성을 포함한 완전한 application.yml를 가진 ConfigMap 업데이트 - Application.yml 파일로 ConfigMap을 마운트하기 위한 Deployment 업데이트 - actuator endpoints를 사용하여 적절한...