diff --git a/src/main/java/com/kamco/cd/kamcoback/config/OpenApiConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/OpenApiConfig.java index 3f8623ef..8e5051ac 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/OpenApiConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/OpenApiConfig.java @@ -6,16 +6,30 @@ import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.servers.Server; +import java.util.ArrayList; import java.util.List; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenApiConfig { + @Value("${server.port}") + private String serverPort; + + @Value("${spring.profiles.active:local}") + private String profile; + + @Value("${swagger.dev-url:https://kamco.dev-api.gs.dabeeo.com}") + private String devUrl; + + @Value("${swagger.prod-url:https://api.kamco.com}") + private String prodUrl; + @Bean public OpenAPI kamcoOpenAPI() { - // ๐Ÿ”น 1) SecurityScheme ์ •์˜ (Bearer JWT) + // 1) SecurityScheme ์ •์˜ (Bearer JWT) SecurityScheme bearerAuth = new SecurityScheme() .type(SecurityScheme.Type.HTTP) @@ -24,12 +38,21 @@ public class OpenApiConfig { .in(SecurityScheme.In.HEADER) .name("Authorization"); - // ๐Ÿ”น 2) SecurityRequirement (๊ธฐ๋ณธ์œผ๋กœ BearerAuth ์‚ฌ์šฉ) + // 2) SecurityRequirement (๊ธฐ๋ณธ์œผ๋กœ BearerAuth ์‚ฌ์šฉ) SecurityRequirement securityRequirement = new SecurityRequirement().addList("BearerAuth"); - // ๐Ÿ”น 3) Components ์— SecurityScheme ๋“ฑ๋ก + // 3) Components ์— SecurityScheme ๋“ฑ๋ก Components components = new Components().addSecuritySchemes("BearerAuth", bearerAuth); + // profile ๋ณ„ server url ๋ถ„๊ธฐ + List servers = new ArrayList<>(); + switch (profile) { + case "prod" -> servers.add(new Server().url(prodUrl).description("์šด์˜ ์„œ๋ฒ„")); + case "dev" -> servers.add(new Server().url(devUrl).description("๊ฐœ๋ฐœ ์„œ๋ฒ„")); + default -> + servers.add(new Server().url("http://localhost:" + serverPort).description("๋กœ์ปฌ ๊ฐœ๋ฐœ ์„œ๋ฒ„")); + } + return new OpenAPI() .info( new Info() @@ -38,19 +61,10 @@ public class OpenApiConfig { "KAMCO ๋ณ€ํ™” ํƒ์ง€ ์‹œ์Šคํ…œ API ๋ฌธ์„œ\n\n" + "์ด API๋Š” ์ง€๋ฆฌ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ๋ณ€ํ™” ํƒ์ง€ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n" + "GeoJSON ํ˜•์‹์˜ ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, PostgreSQL/PostGIS ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.") - .version("v1.0.0") - // .contact(new Contact().name("KAMCO Development - // Team").email("dev@kamco.com").url("https://kamco.com")) - // .license(new License().name("Proprietary").url("https://kamco.com/license")) - ) - .servers( - List.of( - new Server().url("http://localhost:8080").description("๋กœ์ปฌ ๊ฐœ๋ฐœ ์„œ๋ฒ„"), - new Server().url("https://kamco.dev-api.gs.dabeeo.com").description("๊ฐœ๋ฐœ ์„œ๋ฒ„") - // , new Server().url("https://api.kamco.com").description("์šด์˜ ์„œ๋ฒ„") - )) - .components(new Components()) - // ๐Ÿ”ฅ ์—ฌ๊ธฐ ํ•œ ์ค„์ด "๋ชจ๋“  API ๊ธฐ๋ณธ์ ์œผ๋กœ BearerAuth ์š”๊ตฌ" ์˜๋ฏธ + .version("v1.0.0")) + .servers(servers) + // ๋งŒ๋“ค์–ด๋‘” components๋ฅผ ๋„ฃ์–ด์•ผ ํ•จ + .components(components) .addSecurityItem(securityRequirement); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/members/AuthController.java b/src/main/java/com/kamco/cd/kamcoback/members/AuthController.java index f21a02c8..cd123a40 100644 --- a/src/main/java/com/kamco/cd/kamcoback/members/AuthController.java +++ b/src/main/java/com/kamco/cd/kamcoback/members/AuthController.java @@ -114,12 +114,6 @@ public class AuthController { authenticationManager.authenticate( new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword())); - // PENDING ๋น„ํ™œ์„ฑ ์ƒํƒœ(์ƒˆ๋กœ์šด ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ ํ•ด์•ผํ•จ) - if (StatusType.PENDING.getId().equals(status)) { - member.setEmployeeNo(request.getUsername()); - return ApiResponseDto.ok(new TokenResponse(status, null, null, member)); - } - String username = authentication.getName(); // UserDetailsService ์—์„œ ์‚ฌ์šฉํ•œ username String accessToken = jwtTokenProvider.createAccessToken(username); @@ -146,6 +140,12 @@ public class AuthController { member.setName(user.getMember().getName()); member.setEmployeeNo(user.getMember().getEmployeeNo()); + // PENDING ๋น„ํ™œ์„ฑ ์ƒํƒœ(์ƒˆ๋กœ์šด ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ ํ•ด์•ผํ•จ) + if (StatusType.PENDING.getId().equals(status)) { + member.setEmployeeNo(request.getUsername()); + return ApiResponseDto.ok(new TokenResponse(status, accessToken, refreshToken, member)); + } + // ์ธ์ฆ ์„ฑ๊ณต ๋กœ๊ทธ์ธ ์‹œ๊ฐ„ ์ €์žฅ authService.saveLogin(UUID.fromString(username));