Engineering Note

[Swagger] Spring Boot 프로젝트 스웨거 연동 본문

Tip

[Swagger] Spring Boot 프로젝트 스웨거 연동

Software Engineer Kim 2025. 7. 7. 09:36

Step 1: Swagger 라이브러리 추가 (Spring Boot 3.x)

 build.gradle에 추가

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'

 

 

 

Step 2: Swagger 설정 클래스 작성

package com.security.auth.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("Auth API")
                        .description("Spring Security & JWT 기반 인증 시스템 API 문서")
                        .version("v1.0.0"));
    }
}

 

 

Step 3: 서버 실행 후 접속

스웨거 접속 URL : http://localhost:8080/swagger-ui/index.html

 

 

 

Step 4: 시큐리티 설정이 허용

package com.security.auth.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class SecurityConfig {

    @Bean
    public BCryptPasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .csrf(csrf -> csrf.disable())
                .authorizeHttpRequests(auth -> auth
                        .requestMatchers("/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**").permitAll()
                        .anyRequest().authenticated()
                );
        return http.build();
    }
}

 

 

'/**' 은 url 하위 뎁스까지 모두 허용한다는 의미

Comments