11package clap .server .config .swagger ;
22
3+ import io .swagger .v3 .oas .models .Components ;
34import io .swagger .v3 .oas .models .OpenAPI ;
45import 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 ;
58import io .swagger .v3 .oas .models .servers .Server ;
69import org .springframework .beans .factory .annotation .Value ;
710import org .springframework .context .annotation .Bean ;
811import org .springframework .context .annotation .Configuration ;
9- import org .springframework .context .annotation .Profile ;
1012
13+ import java .util .Collections ;
1114import java .util .List ;
1215
16+ import static clap .server .common .AuthConstants .AUTHORIZATION ;
17+
1318@ Configuration
1419public class SwaggerConfig {
1520
21+ private static final String API_NAME = "TaskFlow API" ;
22+ private static final String API_VERSION = "1.0.0" ;
23+
1624 @ Value ("${swagger.server.url}" )
1725 private String serverUrl ;
1826
1927 @ Bean
20- @ Profile ("local" )
21- public OpenAPI localOpenAPI () {
22- return createOpenAPI (getLocalServer ());
28+ public OpenAPI getOpenAPI () {
29+ return new OpenAPI ()
30+ .components (getComponents ())
31+ .servers (List .of (getServer ()))
32+ .security (getSecurity ())
33+ .info (getInfo ());
2334 }
2435
25- @ Bean
26- @ Profile ( "dev" )
27- public OpenAPI devOpenAPI () {
28- return createOpenAPI ( getDevServer () );
36+ private Info getInfo () {
37+ return new Info ( )
38+ . title ( API_NAME )
39+ . version ( API_VERSION );
2940 }
3041
31- private OpenAPI createOpenAPI (Server server ) {
32- return new OpenAPI ()
33- .servers (List .of (server ))
34- .info (new Info ().title ("TaskFlow API" ).version ("1.0" ));
42+ private static List <SecurityRequirement > getSecurity () {
43+ SecurityRequirement securityRequirement = new SecurityRequirement ()
44+ .addList (AUTHORIZATION .getValue ());
45+
46+ return Collections .singletonList (securityRequirement );
3547 }
3648
37- private Server getLocalServer () {
49+ private Server getServer () {
3850 return new Server ()
39- .url (serverUrl )
40- .description ("Local Server" );
51+ .url (serverUrl );
4152 }
4253
43- private Server getDevServer () {
44- return new Server ()
45- .url (serverUrl )
46- .description ("Development Server" );
54+ private static Components getComponents () {
55+ SecurityScheme securityScheme = new SecurityScheme ()
56+ .type (SecurityScheme .Type .HTTP ).scheme ("bearer" ).bearerFormat ("JWT" ).name (AUTHORIZATION .getValue ())
57+ .in (SecurityScheme .In .HEADER ).name (AUTHORIZATION .getValue ());
58+
59+ return new Components ()
60+ .addSecuritySchemes (AUTHORIZATION .getValue (), securityScheme );
4761 }
4862}
0 commit comments