PR CENTER

뉴스룸     |     료실

mobile background

PR CENTER

썸네일 시스템 기능 개선 및 오류 해결

관리자
2024-11-04
조회수 115

□ 로그인 기능 개선

    ▷ 문제 상황 : Spring Security에서 지원하는 로그인 인증 기능 일부만 사용 시 예외 상황에 대해 처리 못함
        - 모든 에러 메시지 Code가 401 로 통합 처리되고, 이외의 에러 메시지 Code는 500 로 처리됨

 

    ▷ 문제 해결

        1. 인증 필터 : 로그인 성공 실패에 따른 handler 추가

        2. 로그인 성공 핸들러 : 로그인 실패 횟수 초기화, 비밀번호 정책 등

        3. 로그인 실패 핸들러 : 로그인 실패 횟수 카운트 처리, 계정 잠금 처리 등

            A. 실패 상황에 따른 Status code 구분

Exception

HTTP Status Code

Description

LockedException

403

Forbidden

계정이 잠긴 경우, 사용자가 로그인할 수 없음

BadCredentialsException

401

Unauthorized

비밀번호가 유효하지 않음.

(DB 에 있는 비밀번호와 불일치)

UsernameNotFoundException

404

Not Found

입력한 로그인ID가 DB 에 존재하지 않는 경우

AuthenticationCredentialsNotFoundException

400

Bad Request

로그인 ID 없이 로그인 요청

InternalAuthenticationServiceException

500

Internal Server Error

런타임 예외, DB 오류, 내부 서버 등

예기치 못한 오류 발생.


□ 관리자 권한 추가

     ▷ AdminFilter 생성

         1. 관리자 여부 확인

         2. 관리자가 아닐 시, 예외 발생 및 예외 메시지 전달

         3. 관리자 여부는 DB 에서 확인

         4. 필터 순서 조정 : jwt, Admin 필터 앞 단에 위치

         5. 예외 처리 필터


□ web.ignoring() 오류 해결

    ▷ 문제 발생 : 기존의 필터 우회 설정이 동작하지 않고 있다.

            → 외부 요청은 토큰이 없으므로, JWT 필터에서 예외 처리에 걸린다.

            → 토큰이 없는 요청에 대해 예외 처리를 하지 않는다.

            ( 인증이 필요한 요청에 토큰 없이 요청할 경우, 로그 로만 남긴다)

 

    ▷ 문제 원인 : web.ignoring 설정 적용 안되는 이유

        - DelegatingFilterProxy

  • 톰캣이 필터 체인을 실행할 때, Security Filter Chain 으로 요청을 위임한다. (연결 역할)
  • 스프링 애플리케이션 컨텍스트에서 지정된 이름의 필터(일반적으로 FilterChainProxy )를 찾아
    그 필터에게 요청을 넘긴다.

     1. web.ignoring() : Security Filter Chain 을 우회하는 설정으로 Security Filter Chain 에만 적용되는 설정이다.

     2. 스프링 부트는 기본적으로 @Bean 으로 등록된 필터를 서블릿 필터 체인에 자동으로 등록


    ▷ 문제 해결

        1. 필터 설정 파일 생성 후 Security Filter 설정 파일에 주입

        2. 서블릿 필터에 registration.setEnabled(false); 설정을 통해 자동 등록을 비활성화 한다.


    ▷ 결과

        - 기존 filter 설정을 유지하면서, 외부 요청이 필터를 통과하지 않도록 설정할 수 있다.


                                                                                                                                                                                    ⭐발표자 : 이현진님 

0 0

페이지 바로가기

@2024 K2SYSTEMS. All rights reserved.

HOME       |       ABOUT US       |       SOLUTION       |       PR CENTER       |       CONTACT       |       인재채용       |       kakao i cloud 고객센터  

@2024 K2SYSTEMS. All rights reserved.