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 エンドポイントを呼び出して OTK を消費しました
CRITICAL FIX:OTKを早期消費していたエンドポイントを削除
根本原因が見つかりました: - /api/validate と /api/validate-otk を kamo-login で呼び出しました SecurityService - これは、ログイン後にOTK IMMEDIATELYを消費しました(ユーザーが使用できるように) - SecurityService のログは...
Fix ESLintエラー: checkExistingSessionステートを使用する
修正: - 既存の***セッションをチェックしながら、読み込みスピナーを表示 - 自動ログインチェック中にログインフォームを非表示 - より良いUXを提供(ユーザーは「セッションの確認」メッセージが表示されます) これはビルドエラーを修正します。 'checkingExistingSession' は値が割り当てられ...
Add 自動ログインとログアウトエンドポイントのRedisライブラリ
Fix ビルドエラー: - 読み取り/書き込みのRedisクライアントヘルパーでapp/lib/redis.tsを作成 - getRedisReadClient() と getRedisWriteClient() を提供 - /api/auto-login および /api/logout エンドポイントで必須 - 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-log...
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エンドポイントからCookie設定を削除
単純化: - /validate-otk エンドポイントは、** 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...
512文字から128文字までのIDの長さを削減
変更点: - *** ID LENGTH:512 -> 128 (64バイトのエントロピー) - すべてのドキュメントとコメントを更新 - 完全な128文字IDを示すためにログを更新 - OTKの長さは64文字のまま(変更なし) セキュリティー:512ビットのエントロピー(128の六角形のchars)は優秀な保証を提...
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 ヘックス文字列 (256バイトの安全なランダムデータ) - OTK ID: 64-char ヘックス文字列(32バイト - 変更なし) - 設定可能な長さを受け入れるためにgenerateSecureHexString() を更新 - すべての検証チェックを更新して、*** ID ...
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...
64-char GUIDで新しい***セッションモデルを実装
- 単純化されたセッション管理のためのKSessionServiceを追加 -*** ID は 64-char ヘックス文字列 (KToken をエンコードしない) - Redisのキーのフォーマット:***<64-char-guid> - Redis値:ユーザデータ(userID、MemberID、権利、ユーザー名な...
MemberRightsApplied カラム名を MySQL で予約したキーワードを避けるように修正 - RIGHT から the right へ列名を変更して MySQL が予約したキーワードの競合を避ける - 初期化中にテーブルの作成エラーを解決する
組織の初期化とデータベーススキーマの問題を修正 - @Builder を追加します。 デフォルトは OrgFeature と Member recordState フィールドで、適切な初期化を確実にするために - MemberRightsApplied のエンティティティティティを変更します。@JoinColumn を enum フィールドの @Column に変更します。データベースレベルのデフォルトで EmbRecordState.isActive に @ColumnDefault アノテーションを追加 - Lombok と競合するカスタム OrgFeatureBuilder メソッドを削除 - MemberService から unused getPasswordEncoder メソッドを削除します
すべての環境でパスワードエンコーダの設定を標準化 - ローカル(application.yml)とk8s(configmap.yaml)の両方で310000にペッパーを****************************と反復に設定し、KamoInitializerServiceで一貫性を確保する
KamoInitializerServiceに一致するパスワードコショウを更新 - サービスの全体でパスワードハッシュの一貫性を確保するために「f09kf32j0sdfd」にコショウを設定する
テスト/adminのためのパスワード ハッシュの発電機のエンドポイント - POST ******************************** 適切な PBKDF2 のハッシュを作成する
アカウント検証の失敗に特定のエラーメッセージを提供 - ユーザーは今、正確な理由を参照してください メニュー 一般的なメッセージの代わりに
Fix JSONからx-www-form-urlencodedへのログインフォームエンコーディングがセキュリティサービスエンドポイントにマッチするように修正
AuthorizationServiceの依存関係を削除し、SecurityServiceに切り替える
- 複雑なAuthorizationService認証ロジックとドメインリダイレクトを削除します。 - セキュリティサービス API 呼び出しで OAuth2 プロバイダの検出を置き換える - 組織固有のビジュアルブランディング(非機能)のためのOAuth2ボタンをキープ - 既存の /api/login ルートで S...
Fix k8s ConfigMapのRedis SSL設定 - boolean変換エラーを防ぐためにssl.enabledプロパティを追加します
Fix Redis設定
- SSL設定を削除(タイプ変換エラーを引き起こしている) - ローカルredis-slaveサービスのパスワード要件を削除します - ホストを************************にセットする (各クラスターのローカル) - パスワードレスのRedisで動作するように設定を簡素化
Fix データベース接続の設定
- データベースの URL を更新して 10.8.0.1:3306 に直接接続 - rootからkamoにユーザー名を変更する - root-passwordからDB PASSWORDへの秘密の参照を更新する - デプロイからmysql-authの秘密の依存性を削除します
Fix SecurityServiceの展開設定
- データベース、Redis、および外部サービスの設定を含む完全なapplication.ymlでConfigMapを更新して下さい - ConfigMapをapplication.ymlファイルとしてマウントするデプロイメントを更新する - アクチュエータエンドポイントを使用して、適切な健康チェックプローブを追加 -...