Skip to content

Commit 12c6f42

Browse files
committed
CLAP-84 Feat: swagger에 auth 관련 설정 추가
<footer> - 관련: #43
1 parent e575fb9 commit 12c6f42

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed
Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,62 @@
11
package clap.server.config.swagger;
22

3+
import io.swagger.v3.oas.models.Components;
34
import io.swagger.v3.oas.models.OpenAPI;
45
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;
58
import io.swagger.v3.oas.models.servers.Server;
69
import org.springframework.beans.factory.annotation.Value;
710
import org.springframework.context.annotation.Bean;
811
import org.springframework.context.annotation.Configuration;
9-
import org.springframework.context.annotation.Profile;
1012

13+
import java.util.Collections;
1114
import java.util.List;
1215

16+
import static clap.server.common.AuthConstants.AUTHORIZATION;
17+
1318
@Configuration
1419
public 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

Comments
 (0)