일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Switch Expressions
- 프리미티브 타입
- 제네릭 와일드 카드
- docker
- System.err
- 람다식
- 항해99
- 함수형 인터페이스
- auto.create.topics.enable
- annotation processor
- 스파르타코딩클럽
- 로컬 클래스
- 바운디드 타입
- yield
- 상속
- 자바할래
- 합병 정렬
- 자바스터디
- throwable
- Study Halle
- 제네릭 타입
- raw 타입
- System.in
- github api
- 접근지시자
- 익명 클래스
- System.out
- 브릿지 메소드
- 정렬
- junit 5
Archives
- Today
- Total
코딩하는 털보
21.10.12 TIL 본문
정말 오랜만에 작성하는 TIL...
프로젝트 시작하니깐 너무 바빠서 쓸 생각도 못하겠다.
오늘 삽질한걸 돌아보자.
MVC Unit 테스트에서 'JwtTokenProvider'를 찾을 수 없다는 에러가 발생했다.
JwtTokenProvider 빈이 등록되어 있는 Configuration 클래스를 테스트에서 사용할 수 있도록 등록해주면 해결되었다.
@ContextConfiguration(classes = WebConfig.class)
난 단순히 게시글 API 단위 테스트를 하려고 하는데 얘가 왜 필요할까 생각해봤는데,
아마 라이브러리에 스프링 시큐리티 테스트가 있어서 그런건 아닐까 했는데 그건 아니었다.
어쩌면 @WebMvcTest는 어플리케이션 컨텍스트에 등록된 필터들 까지 동작시키는 걸지도 모른다. 아마 이게 맞을거라고 제일 예상된다.
그래서 등록된 JwtAuthenticationFilter를 거치면서 JwtAuthenticationFilter에서 의존하는 JwtTokenProvider를 찾은 것 일지도?
@RequiredArgsConstructor
public class JwtAuthenticationFilter extends GenericFilterBean {
private final JwtTokenProvider jwtTokenProvider;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String token = jwtTokenProvider.resolveToken((HttpServletRequest) request);
if (token != null && jwtTokenProvider.validateToken(token)) {
Authentication authentication = jwtTokenProvider.getAuthentication(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
chain.doFilter(request, response);
}
}
아니면 애초에 WebSecurityConfig에서도 의존하고 있으니...여기서 걸리는 것일지도...음...
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final JwtTokenProvider jwtTokenProvider;
Comments