개발자

springboot 3, security6 mock질문입니다.

2023년 01월 20일조회 115

securityconfig 에서 permitall 을 한 상태입니다. postman 이나 talendapi로 요청을 보내면 200이 떨어지나 테스트코드에서 mockmvc 를 하면 401이 나옵니다. 3일째 찾고있는데 없어서 질문드립니다 ㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

테스트 코드에서 'MockMvc'를 사용하여 요청을 보냈을 때 401 Unauthorized 오류가 발생하는 문제가 있습니다. 이는 Spring Security의 설정이 테스트 환경과 일치하지 않아 발생할 수 있는 문제입니다. 아래의 몇 가지 가능한 원인과 해결 방법을 제시해 드리겠습니다: 1. 테스트에서의 Security 설정: 테스트 코드에서 Spring Security의 설정을 정확히 일치시켜야 합니다. 특히 'WebSecurityConfigurerAdapter'를 상속받은 'SecurityConfig' 클래스의 설정과 테스트 코드에서의 '@EnableWebSecurity' 애너테이션 설정이 일치하는지 확인해야 합니다. 2. 사용자 인증: 만약 보호된 리소스에 대해 인증이 필요하다면, 테스트 코드에서 사용자를 인증해야 합니다. 'MockMvc'를 사용하여 요청을 보낼 때, 'with(user("username").password("password"))' 메소드를 사용하여 사용자를 인증하도록 설정해야 합니다. 사용자의 이름과 비밀번호는 실제 인증에 사용되는 값과 일치해야 합니다. 3. 'MockMvc' 설정: 'MockMvc'의 설정을 검토해야 합니다. 예를 들어, '@AutoConfigureMockMvc' 애너테이션을 사용하여 'MockMvc'를 자동으로 구성하는 경우, '@MockBean'을 사용하여 컨트롤러와 관련된 서비스나 빈을 목 객체로 대체하는 등의 설정이 올바르게 이루어져야 합니다. 4. 테스트 대상 경로: 요청을 보낼 때 테스트 대상 경로를 정확하게 지정해야 합니다. 'mockMvc.perform(post("/api/endpoint"))'와 같이 요청을 보낼 때 요청 경로가 실제 테스트 대상과 일치하는지 확인해야 합니다. 위의 해결 방법을 시도해 보고 여전히 문제가 발생하는 경우, 더 자세한 코드와 설정을 제공해 주시면 더욱 구체적인 도움을 드릴 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!