diff --git a/ecs/jskult-webapp/src/controller/login.py b/ecs/jskult-webapp/src/controller/login.py
index 00e5cb75..c8a5663c 100644
--- a/ecs/jskult-webapp/src/controller/login.py
+++ b/ecs/jskult-webapp/src/controller/login.py
@@ -73,7 +73,7 @@ def login(
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_ERROR)
except JWTTokenVerifyException as e:
logger.info(f'ログイン失敗:{e}')
- raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_SESSION_EXPIRED)
+ raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
verified_token = jwt_token.verify_token()
# 普通の認証だと、`cognito:username`に入る。
@@ -130,8 +130,8 @@ def sso_authorize(
# トークン検証
verified_token = jwt_token.verify_token()
except JWTTokenVerifyException as e:
- logger.exception(f'SSOログイン失敗:{e}')
- raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_SESSION_EXPIRED)
+ logger.info(f'SSOログイン失敗:{e}')
+ raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
# トークンからユーザーIDを取得
user_id = verified_token.user_id
diff --git a/ecs/jskult-webapp/src/controller/logout.py b/ecs/jskult-webapp/src/controller/logout.py
index 79de281c..c841e48c 100644
--- a/ecs/jskult-webapp/src/controller/logout.py
+++ b/ecs/jskult-webapp/src/controller/logout.py
@@ -22,11 +22,16 @@ def logout_view(
reason: Optional[str] = None,
session: Union[UserSession, None] = Depends(verify_session)
):
+ # どういうルートでログインしたかを判断するため、refererを取得
+ referer = request.headers.get('referer', '')
+
redirect_to = '/login/userlogin'
link_text = 'MeDaCA機能メニューへ'
- if session is not None and session.user_flg == '1':
+ # セッションが切れておらず、メンテユーザである、またはメンテログイン画面から遷移した場合、メンテログイン画面に戻す
+ if (session is not None and session.user_flg == '1') or referer.endswith('maintlogin'):
redirect_to = '/login/maintlogin'
link_text = 'Login画面に戻る'
+
logout = LogoutViewModel()
logout.redirect_to = redirect_to
logout.reason = constants.LOGOUT_REASON_MESSAGE_MAP.get(reason, '')
diff --git a/ecs/jskult-webapp/src/router/session_router.py b/ecs/jskult-webapp/src/router/session_router.py
index 90f3a5c9..324c777f 100644
--- a/ecs/jskult-webapp/src/router/session_router.py
+++ b/ecs/jskult-webapp/src/router/session_router.py
@@ -90,8 +90,7 @@ class BeforeCheckSessionRoute(MeDaCaRoute):
verified_session = verify_session(checked_session)
# セッションが有効でない場合、エラーにする
if verified_session is None:
- raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,
- detail=constants.LOGOUT_REASON_SESSION_EXPIRED)
+ raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
scope = request.scope
scope['session'] = verified_session
session_request = Request(receive=request.receive, scope=scope)
diff --git a/ecs/jskult-webapp/src/system_var/constants.py b/ecs/jskult-webapp/src/system_var/constants.py
index 604acfe5..064d135b 100644
--- a/ecs/jskult-webapp/src/system_var/constants.py
+++ b/ecs/jskult-webapp/src/system_var/constants.py
@@ -119,7 +119,6 @@ LOGOUT_REASON_BATCH_PROCESSING = 'batch_processing'
LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE = 'batch_processing_ult'
LOGOUT_REASON_BACKUP_PROCESSING = 'dump_processing'
LOGOUT_REASON_NOT_LOGIN = 'not_login'
-LOGOUT_REASON_SESSION_EXPIRED = 'session_expired'
LOGOUT_REASON_DB_ERROR = 'db_error'
LOGOUT_REASON_UNEXPECTED = 'unexpected'
@@ -130,7 +129,6 @@ LOGOUT_REASON_MESSAGE_MAP = {
LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE: '日次バッチ処理中のため、
マスタ-メンテは使用出来ません。',
LOGOUT_REASON_BACKUP_PROCESSING: 'バックアップ取得を開始しました。
日次バッチ更新が終了するまでマスターメンテは使用できません',
LOGOUT_REASON_NOT_LOGIN: 'Loginしてからページにアクセスしてください。',
- LOGOUT_REASON_SESSION_EXPIRED: 'セッションが切れています。
再度Loginしてください。',
LOGOUT_REASON_DB_ERROR: 'DB接続に失敗しました。
再度Loginするか、
管理者にお問い合わせください。',
LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。
再度Loginするか、
管理者に問い合わせてください。'
}