지대한
2 years ago
3 changed files with 152 additions and 1 deletions
@ -0,0 +1,68 @@
|
||||
package com.palnet.biz.config; |
||||
|
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.format.Formatter; |
||||
|
||||
import java.text.ParseException; |
||||
import java.text.SimpleDateFormat; |
||||
import java.time.LocalDate; |
||||
import java.time.LocalDateTime; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.Date; |
||||
import java.util.Locale; |
||||
|
||||
@Configuration |
||||
public class DateTimeConfig { |
||||
|
||||
private static final String DATE_FORMAT = "yyyy-MM-dd"; |
||||
private static final String TIME_FORMAT = "HH:mm:ss"; |
||||
private static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; |
||||
|
||||
// @Bean
|
||||
// public Formatter<LocalDate> localDateFormatter() {
|
||||
// return new Formatter<LocalDate>() {
|
||||
// @Override
|
||||
// public LocalDate parse(String text, Locale locale) {
|
||||
// return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyyMMdd", locale));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String print(LocalDate object, Locale locale) {
|
||||
// return DateTimeFormatter.ISO_DATE.format(object);
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @Bean
|
||||
// public Formatter<LocalDateTime> localDateTimeFormatter() {
|
||||
// return new Formatter<LocalDateTime>() {
|
||||
// @Override
|
||||
// public LocalDateTime parse(String text, Locale locale) {
|
||||
// return LocalDateTime.parse(text, DateTimeFormatter.ofPattern("yyyyMMddHHmmss", locale));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String print(LocalDateTime object, Locale locale) {
|
||||
// return DateTimeFormatter.ISO_DATE_TIME.format(object);
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
|
||||
@Bean |
||||
public Formatter<Date> DateFormatter() { |
||||
return new Formatter<Date>() { |
||||
@Override |
||||
public Date parse(String text, Locale locale) throws ParseException { |
||||
SimpleDateFormat dt = new SimpleDateFormat(DATE_TIME_FORMAT, locale); |
||||
return dt.parse(text); |
||||
} |
||||
|
||||
@Override |
||||
public String print(Date object, Locale locale) { |
||||
return new SimpleDateFormat(DATE_TIME_FORMAT).format(object); |
||||
} |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,71 @@
|
||||
package com.palnet.biz.config; |
||||
|
||||
import io.swagger.v3.oas.models.parameters.Parameter; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import springfox.documentation.builders.ApiInfoBuilder; |
||||
import springfox.documentation.builders.PathSelectors; |
||||
import springfox.documentation.builders.RequestHandlerSelectors; |
||||
import springfox.documentation.service.ApiInfo; |
||||
import springfox.documentation.service.ApiKey; |
||||
import springfox.documentation.service.AuthorizationScope; |
||||
import springfox.documentation.service.SecurityReference; |
||||
import springfox.documentation.spi.DocumentationType; |
||||
import springfox.documentation.spi.service.contexts.SecurityContext; |
||||
import springfox.documentation.spring.web.plugins.Docket; |
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2; |
||||
|
||||
import java.time.LocalDate; |
||||
import java.time.LocalDateTime; |
||||
import java.util.Arrays; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Configuration |
||||
//@EnableSwagger2
|
||||
public class SwaggerConfig { |
||||
|
||||
|
||||
@Bean |
||||
public Docket api() { |
||||
return new Docket(DocumentationType.OAS_30) // open api spec 3.0
|
||||
.apiInfo(new ApiInfoBuilder().version("1.0").title("PAV").build()) |
||||
.forCodeGeneration(true).securitySchemes(Arrays.asList(apiKey())) |
||||
.select() |
||||
.apis(RequestHandlerSelectors.any()) |
||||
.paths(PathSelectors.any()) |
||||
.build() |
||||
.apiInfo(apiInfo()) |
||||
.directModelSubstitute(Date.class, String.class) |
||||
.directModelSubstitute(LocalDate.class, String.class) |
||||
.directModelSubstitute(LocalDateTime.class, String.class) |
||||
.securityContexts(Arrays.asList(securityContext())) |
||||
.securitySchemes(Arrays.asList(apiKey())); |
||||
} |
||||
|
||||
|
||||
private ApiInfo apiInfo() { |
||||
return new ApiInfoBuilder() |
||||
.title("PAV API") |
||||
.description("----") |
||||
.version("1.0") |
||||
.build(); |
||||
} |
||||
|
||||
//ApiKey 정의
|
||||
private ApiKey apiKey() { |
||||
return new ApiKey("Authorization", "Authorization", "header"); |
||||
} |
||||
|
||||
//JWT SecurityContext 구성
|
||||
private SecurityContext securityContext() { |
||||
return SecurityContext.builder().securityReferences(defaultAuth()).build(); |
||||
} |
||||
|
||||
private List<SecurityReference> defaultAuth() { |
||||
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEveryThing"); |
||||
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; |
||||
authorizationScopes[0] = authorizationScope; |
||||
return Arrays.asList(new SecurityReference("Authorization", authorizationScopes)); |
||||
} |
||||
} |
Loading…
Reference in new issue