728x90
회원가입을 구현할 때까지만 해도 잘 나왔던 swagger 페이지가 로그인 구현을 한 후에는 401 에러 페이지가 나옵니다. 로그인을 구현하기 위해 서버에 Spring Security 를 적용하였는데, Spring Security 는 권한 부여를 위한 Role 이라는 개념을 사용하기 때문에 Swagger 에 접근할 수 있는 Role 을 정의하고, 해당 Role 을 가진 사용자만 Swagger 에 접근할 수 있게 합니다.
이를 해결하기 위해서, Spring Security 에서 Swagger 에 해당하는 url 을 무시하도록 설정하면 됩니다.
Spring Security 에서 해당 url 을 무시하도록 설정
아래와 같이 spring security 룰을 무시하게 하는 url 규칙을 설정합니다.
public class SecurityConfig extends WebSecurityConfigurerAdapter {
...
}
그런데 Spring Security 공식문서 에 따르면, WebSecurityConfigurerAdapter 가 deprecated 되었다고 합니다. 따라서 Spring Security 5.4 에서는 WebSecurityCustomizer 를 사용하여 아래와 같이 작성해줍니다.
antMatchers() 에 Swagger 에 해당하는 url 을 넣어주면 됩니다.
public class Securityconfig {
// Spring Security 룰을 무시하게 하는 url 규칙
@Bean
public WebSecurityCustomizer securityCustomizer() {
return web -> web.ignoring().antMatchers("/v3/api-docs", "/swagger-resources/**", "/swagger-ui.html", "/webjars/**", "/swagger/**");
}
}
728x90