인프런 커뮤니티 질문&답변

smathj님의 프로필 이미지
smathj

작성한 질문수

스프링 시큐리티 OAuth2

검증 아키텍처 이해 - BearerTokenAuthenticationFilter

검증 아키텍처 이해 - BearerTokenAuthenticationFilter 강의 편 질문있습니다.

작성

·

530

·

수정됨

0

강의 : 검증 아키텍처 이해 - BearerTokenAuthenticationFilter

 

안녕하세요 강사님, 강의 학습중 질문이 있습니다.

 

다음은, 시큐리티 설정 파일 일부 코드이며

여기서 JwtAuthorizationRsaPublicKeyFilter 를 추가로 Bean 등록하였는데요.

 

일단 Bearer 에 관련된건 BearerTokenAuthenticationFilter가 수행하고

doFilterInternal 메서드에서 시큐리티 컨텍스트에 저장 하는 코드를 확인했습니다.

 

여기서 수업시간에 생성한 JwtAuthorizationRsaPublicKeyFilter 필터입니다

  • 첫번째 질문

강의 예제 한에서는 시큐리티 컨텍스트에 저장하는

초점에 있어서는,

JwtAuthorizationRsaPublicKeyFilter 필터가 없어도 문제 없는것 같은데 제 생각이 맞나요?

 

  • 두번째 질문

두 필터의 순서는 어떻게 지정되는건가요?

 

  • 세번째 질문

또한 JwtAuthorizationRsaPublicKeyFilter 필터에 추가적인 로직을 부여한다면,

1. 직접 커스텀 필터를 특정 필터 전/후에 등록

2.리프레쉬 토큰 로직

3.DB 커넥션이 필요한 작업

4. 토큰 유효시간 검증

등과 같은 작업할때 일까요?

아니면 또다른 상황이 있을까요?

 

 

 

 

 

 

 

답변 2

1

smathj님의 프로필 이미지
smathj
질문자

강사님, 자세한 답변 감사합니다 !

열씸히 배우겠습니다.

1

정수원님의 프로필 이미지
정수원
지식공유자

  • 첫번째 질문

    • BearerTokenAuthenticationFilter 를 활성화 했다면 이 필터에서 토큰을 검증하고 검증에 성공하게 되면 인증객체를 생성하게 되고 SecurityContext 에 인증객체를 저장하는 과정이 있기 때문에 JwtAuthorizationRsaPublicKeyFilter 에서 다시 SecurityContext 에 인증객체를 저장할 필요는 없긴 합니다. 다만 JwtAuthorizationRsaPublicKeyFilter 에 생성하는 인증객체 정보와 BearerTokenAuthenticationFilter 에서 생성하는 인증객체 정보는 다르기 때문에 어떤 인증객체를 활용할 것인지에 따라 결정이 필요할 것 같습니다.

       

  • 두번째 질문

    • 필터는 HttpSecurity 에 있는 API 를 통해서 추가할 수 있습니다.

    • http.addFilterBefore() 나 http.addFilterAfter() 메서드를 사용하시면 됩니다.

     

  • 세번째 질문

    • 이 부분은 서비스 환경에 따라 다양한 경우가 있어서 어떤 기준이 있는 것은 아닙니다. 다만 해당 필터의 목적과 역할이 무엇인지를 명확하게 설정하는 것이 중요합니다. JwtAuthorizationRsaPublicKeyFilter 클래스는 토큰에 대한 유효성을 검증하고 인증에 성공할 경우 사용자에게 리소스를 접근할 수 있는 권한을 부여하는 역할을 하고 있습니다. 이 역할의 기준에서 추가적인 로직을 고민해 봐야 합니다. 하나의 클래스가 책임져야 할 역할은 한가지여야 객체 지향적인 설계가 올바르게 구성이 됩니다. 위에서 나열한 부분이 그러한 기준에 부합하는지 검토해 보시기 바랍니다.

smathj님의 프로필 이미지
smathj

작성한 질문수

질문하기