Spring Security 프로젝트에 Swagger 적용하기

Hyunsoo Kim·2024년 8월 14일
0

스프링

목록 보기
13/13
post-thumbnail

spring security 개발하며 swagger를 적용하다 문제가 생겼다. 에러를 보는 순간 발생 이유를 파악할 수 있었다.

나는 API 보호를 위해 spring security를 적용했다. 그리고 swagger는 API 명세서를 자동으로 작업해 주는 도구다. 그렇다. API 명세서를 작성하고 테스트 자동화를 하기 위해선 API에 접근해야 하는데, 내가 만든 spring security가 API 접근을 차단한 것이다.

SwaggerConfig 수정하기

@OpenAPIDefinition

api에 접근하기 위한 코드를 추가해 주자.

security = @SecurityRequirement(name = "swagger에서 쓸 토큰 이름")

@SecurityScheme

@SecurityScheme(
        name = "swagger에서 쓸 토큰 이름",
        type = SecuritySchemeType.APIKEY,
        in = SecuritySchemeIn.HEADER,
        paramName = "spring security를 위해 설정한 토큰 이름"
)

SpringSecurityConfig 수정

http
      .authorizeRequests(authorizeRequests -> authorizeRequests
                        .requestMatchers("/swagger-ui/**", "/api-docs/**").permitAll() //swagger url 접근 설정 추가하기
                        
        return http.build();

결과

Authorize 버튼을 통해 토큰을 검증하면 api 접근이 가능해진다.

profile
다부진 미래를 만들어가는 개발자

0개의 댓글