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

asdf님의 프로필 이미지
asdf

작성한 질문수

스프링 시큐리티 OAuth2

RSA 검증 기능 구현 - JwtAuthorizationRsaFilter

작성

·

480

0

강의를 보다 의문이 생겨서 질문 드립니다.

http.addFilterBefore(jwtAuthorizationRsaFilter(null), UsernamePasswordAuthenticationFilter.class);

필터를 등록하실 때 jwtAuthorizationRsaFIlter에 null을 주셨습니다.

@Bean
public JwtAuthorizationRsaFilter jwtAuthorizationRsaFilter(RSAKey rsaKey) throws JOSEException {
    return new JwtAuthorizationRsaFilter(new RSASSAVerifier(rsaKey.toRSAPublicKey())); // 검증은 공개키
}

그러나 jwtAuthorizationRsaFIlter는 파라미터에 넘어온 rsaKey를 이용하여 공개키를 찾는데 이 rsaKey는 어디서 주입 받는 것인가요??

설정 클래스에 @Autowired는 모두 삭제한 것으로 알고 있습니다.

jwtAuthenticationFilter를 등록할 때 역시 같은 이유로 어디서 주입 받는지 잘 모르겠습니다.

답변 1

0

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

소스를 보시면 SignatureConfig 라는 클래스가 있습니다.

이 클래스 안에 RSAKey 가 빈으로 정의가 되어 있습니다.

image

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

답변해주셔서 감사합니다! 그러나 스프링에 대한 이해도가 낮은 탓인지 이해가 잘 안되는 부분이 있습니다. 빈으로 등록하더라도 OAuth2ResourceServer에서 따로 필드를 선언한 다음 (@Autowired private RSAKey rsaKey;)@Autowired 또는 생성자와 같은 방법으로 외부에서 주입받은 다음 파라미터로 넘겨야 되는거 아닌가요??

asdf님의 프로필 이미지
asdf

작성한 질문수

질문하기