仕様に合わせてロジック修正

This commit is contained in:
nik.n 2024-04-03 10:57:54 +09:00
parent 4270582d7a
commit 000e9c006f
2 changed files with 10 additions and 3 deletions

View File

@ -70,8 +70,8 @@ def login(
pre_login_user_record = login_service.logged_in_user(request.username) pre_login_user_record = login_service.logged_in_user(request.username)
# ログイン失敗回数が10回以上あれば、ログアウト画面にリダイレクトする # ログイン失敗回数が10回以上あれば、ログアウト画面にリダイレクトする
if pre_login_user_record is not None and pre_login_user_record.is_login_failed_limit_exceeded(): if pre_login_user_record is not None and pre_login_user_record.is_login_failed_limit_exceeded():
logger.info(f'ログイン失敗回数が10回以上: {request.username}') logger.info(f'ログイン失敗回数が10回以上: {pre_login_user_record.user_id}')
login_service.on_login_fail_limit_exceeded(request.username) login_service.incorrect_login_password_attempt(pre_login_user_record.user_id)
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED) raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED)
try: try:
@ -79,7 +79,11 @@ def login(
except NotAuthorizeException as e: except NotAuthorizeException as e:
logger.info(f'ログイン失敗:{e}') logger.info(f'ログイン失敗:{e}')
login_service.incorrect_login_password_attempt(request.username) login_service.incorrect_login_password_attempt(request.username)
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_ERROR) if pre_login_user_record is not None and pre_login_user_record.is_on_login_failed_limit():
login_service.on_login_fail_limit_exceeded(pre_login_user_record.user_id)
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED)
else:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_ERROR)
except JWTTokenVerifyException as e: except JWTTokenVerifyException as e:
logger.info(f'ログイン失敗:{e}') logger.info(f'ログイン失敗:{e}')
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)

View File

@ -39,3 +39,6 @@ class UserMasterModel(BaseDBModel):
def is_login_failed_limit_exceeded(self): def is_login_failed_limit_exceeded(self):
return self.mntuser_login_failed_cnt >= constants.LOGIN_FAIL_LIMIT return self.mntuser_login_failed_cnt >= constants.LOGIN_FAIL_LIMIT
def is_on_login_failed_limit(self):
return self.mntuser_login_failed_cnt == constants.LOGIN_FAIL_LIMIT - 1