-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
안녕하세요 강사님 로그인 질문있씁니다!
23.08.16 10:04 작성 23.08.16 10:55 수정 조회수 311
0
public class LoginFilter extends UsernamePasswordAuthenticationFilter
이 작업을 통해서 login으로 들어오는 것을
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
try {
User user = objectMapper.readValue(request.getInputStream(), User.class);
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword());
return authenticationManager.authenticate(authenticationToken);
} catch (IOException e) {
log.error("{}", e);
}
return super.attemptAuthentication(request, response);
}
이 작업을 통해서 로그인 하는 걸로 알고있는데,
이러한 경우에 컨트롤러 테스트 코드를 어떻게 작성할 수 있는 건지 궁금합니다.
api가 아니라 자꾸 에러가 발생하는데
혹시 이러한 경우에 api 테스트 코드 작성 팁좀 가르쳐주실 수 있나요?
이러한 예외가 발생합니다.
이유를 모르겠습니다. Postman으로 할 때는 잘 동작합니다 ㅜㅜ
그냥 /api/login 이라는 api를 생성해서 테스트해야 될까요?
답변을 작성해보세요.
0
0
최주호
지식공유자2023.08.16
이거 테스트 하려면, 전체적인 개념 정리가 되어있어야 합니다.!!
설명할 부분이 너무 많습니다.
부분 적으로 찝어서 질문을 해주시면, 그 부분에 대한 답변을 해드리고,
그게 아니라면, Junit 강의를 한번 보는 것을 추천드려요.
진짜 잘하고싶다
질문자2023.08.16
이게 api를 호출하는 것이 아닌
시큐리티 내부에 구현되어있는 그런 환경에서 로그인 되는 거 같은데
스프링 이전에 필터에서 로그인 진행하는 것이기 때문에 (attemptAuthentication 메서드로)
api테스트가 불가능한 부분이라고 생각해서 여쭤봤습니다.
제가 생각했을 때 /login은 api가 아니기 때문에 SpringBootTest가 불가능하다고 생각하는데
틀린 부분 지적 부탁드립니다!
답변 2