1+ package refresh .acci .global .config ;
2+
3+ import io .swagger .v3 .oas .models .Components ;
4+ import io .swagger .v3 .oas .models .OpenAPI ;
5+ import io .swagger .v3 .oas .models .info .Info ;
6+ import io .swagger .v3 .oas .models .security .SecurityRequirement ;
7+ import io .swagger .v3 .oas .models .security .SecurityScheme ;
8+ import io .swagger .v3 .oas .models .servers .Server ;
9+ import org .springframework .context .annotation .Bean ;
10+ import org .springframework .context .annotation .Configuration ;
11+
12+ import java .util .List ;
13+
14+ @ Configuration
15+ public class SwaggerConfig {
16+
17+ @ Bean
18+ public OpenAPI customOpenAPI () {
19+
20+ // API 기본 정보
21+ Info info = new Info ()
22+ .title ("Acci" )
23+ .description ("Acci - AI 기반 교통사고 과실비율 분석 및 사고 대응 도움 서비스" )
24+ .version ("1.0.0" );
25+
26+ // 서버 정보
27+ Server server = new Server ()
28+ .url ("https://acci-ai.site" )
29+ .description ("배포 서버" );
30+
31+ Server localServer = new Server ()
32+ .url ("http://localhost:8080" )
33+ .description ("로컬 개발 서버" );
34+
35+ // 보안 스키마 (JWT Bearer Token)
36+ SecurityScheme bearerAuth = new SecurityScheme ()
37+ .type (SecurityScheme .Type .HTTP )
38+ .scheme ("bearer" )
39+ .bearerFormat ("JWT" )
40+ .in (SecurityScheme .In .HEADER )
41+ .name ("Authorization" );
42+
43+ // 보안 요구 사항 (전역 적용)
44+ SecurityRequirement securityRequirement = new SecurityRequirement ()
45+ .addList ("bearerAuth" );
46+
47+ // OpenAPI 객체 구성
48+ return new OpenAPI ()
49+ .info (info )
50+ .servers (List .of (server , localServer ))
51+ .components (new Components ().addSecuritySchemes ("bearerAuth" , bearerAuth ))
52+ .addSecurityItem (securityRequirement );
53+ }
54+ }
0 commit comments