From 7f00f5de9928bbc2e755846416de1370c6df4a82 Mon Sep 17 00:00:00 2001 From: Fabio Formosa Date: Sat, 22 Oct 2022 00:27:29 +0200 Subject: [PATCH] #77 made the oas dependency optional and conditional --- .../common/config/OpenAPIConfigConsts.java | 2 +- .../quartz-manager-starter-api/pom.xml | 61 ++++++++-------- .../api/configuration/OpenApiConfig.java | 73 +++++++------------ .../api/controllers/JobController.java | 2 +- .../api/controllers/SchedulerController.java | 4 +- .../controllers/SimpleTriggerController.java | 2 +- .../api/controllers/TriggerController.java | 4 +- .../quartz-manager-starter-security/pom.xml | 1 + .../security/QuartzManagerSecurityConfig.java | 14 ++-- .../config/SecurityOpenApiConfig.java | 61 ++++++++++++++++ .../security/controllers/UserController.java | 2 +- .../quartz-manager-web-showcase/pom.xml | 8 +- .../WebShowcaseOpenApiConfig.java | 31 ++++++++ .../controllers/HealthCheckController.java | 3 +- .../src/main/resources/application.yml | 5 ++ 15 files changed, 179 insertions(+), 94 deletions(-) create mode 100644 quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/config/SecurityOpenApiConfig.java create mode 100644 quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/WebShowcaseOpenApiConfig.java diff --git a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/OpenAPIConfigConsts.java b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/OpenAPIConfigConsts.java index 15b3151..9b182f8 100644 --- a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/OpenAPIConfigConsts.java +++ b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/OpenAPIConfigConsts.java @@ -2,6 +2,6 @@ package it.fabioformosa.quartzmanager.api.common.config; public class OpenAPIConfigConsts { - final static public String BASIC_AUTH_SEC_OAS_SCHEME = "basic-auth"; + final static public String QUARTZ_MANAGER_SEC_OAS_SCHEMA = "quartz-manager-auth"; } diff --git a/quartz-manager-parent/quartz-manager-starter-api/pom.xml b/quartz-manager-parent/quartz-manager-starter-api/pom.xml index 88c8e19..17fc0a5 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/pom.xml +++ b/quartz-manager-parent/quartz-manager-starter-api/pom.xml @@ -40,19 +40,21 @@ org.springframework.boot spring-boot-devtools + runtime + true org.springframework.boot spring-boot-starter-websocket - - - - org.springframework.boot spring-boot-starter-validation + + org.springframework + spring-context-support + org.springframework.boot spring-boot-starter-test @@ -116,28 +118,28 @@ - - io.projectreactor - reactor-core - - - io.projectreactor - reactor-net - 2.0.8.RELEASE - - - io.projectreactor.spring - reactor-spring-context - 2.0.7.RELEASE - - - io.netty - netty-all - - - org.springframework.boot - spring-boot-starter-aop - + + + + + + + + + + + + + + + + + + + + + + org.yaml snakeyaml @@ -148,16 +150,13 @@ org.springdoc springdoc-openapi-ui ${springdoc-openapi.version} + true - - - - - io.swagger.core.v3 swagger-annotations 2.1.11 + true diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/configuration/OpenApiConfig.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/configuration/OpenApiConfig.java index ad64f5b..f546600 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/configuration/OpenApiConfig.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/configuration/OpenApiConfig.java @@ -1,68 +1,49 @@ package it.fabioformosa.quartzmanager.api.configuration; -import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.Operation; -import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; -import io.swagger.v3.oas.models.media.*; -import io.swagger.v3.oas.models.parameters.RequestBody; -import io.swagger.v3.oas.models.responses.ApiResponse; -import io.swagger.v3.oas.models.responses.ApiResponses; -import io.swagger.v3.oas.models.security.SecurityScheme; -import it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts; import it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths; +import lombok.extern.slf4j.Slf4j; +import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.customizers.OpenApiCustomiser; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import java.util.Arrays; +import java.util.Optional; + +@Slf4j @Configuration public class OpenApiConfig { + @ConditionalOnProperty(name = "quartz-manager.oas.enabled") + @ConditionalOnMissingBean @Bean - public OpenAPI customOpenAPI(@Autowired(required = false) SecurityDiscover securityDiscover) { - OpenAPI openAPI = new OpenAPI() - .info(apiInfo()); - - if(securityDiscover != null) - openAPI - .components(new Components().addSecuritySchemes(OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME, buildBasicAuthScheme())) - .path(QuartzManagerPaths.QUARTZ_MANAGER_LOGIN_PATH, - new PathItem().post(new Operation() - .operationId("login") - .tags(Arrays.asList("auth")) - .requestBody(new RequestBody().content( - new Content().addMediaType("application/x-www-form-urlencoded", new MediaType().schema(new Schema().type("object") - .addProperties("username", new StringSchema()) - .addProperties("password", new PasswordSchema()) - .required(Arrays.asList("username", "password")) - )))) - .responses(new ApiResponses().addApiResponse("200", new ApiResponse().description("JWT Token to authenticate the next requests"))) - .responses(new ApiResponses().addApiResponse("401", new ApiResponse().description("Unauthorized - Username or password are incorrect!"))) - )); - - return openAPI; - } - - private SecurityScheme buildBasicAuthScheme() { - return new SecurityScheme() - .type(SecurityScheme.Type.HTTP) - .scheme("bearer") - .bearerFormat("JWT"); - } - - - private Info apiInfo() { - return new Info() + public OpenAPI quartzManagerOpenAPI() { + log.info("No OpenAPI found! Quart Manager is creating it..."); + return new OpenAPI().info(new Info() .title("QUARTZ MANAGER API") .description("Quartz Manager - REST API") .version("1.0.0") .license(new License() .name("Apache License 2.0") - .url("https://github.com/fabioformosa/quartz-manager/blob/master/LICENSE")); - } + .url("https://github.com/fabioformosa/quartz-manager/blob/master/LICENSE"))); + } + + @ConditionalOnProperty(name = "quartz-manager.oas.enabled") + @Bean + public GroupedOpenApi quartzManagerStoreOpenApi(@Autowired(required = false) @Qualifier("quartzManagerOpenApiCustomiser") Optional openApiCustomiser) { + String paths[] = {QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/**"}; + GroupedOpenApi.Builder groupedOpenApiBuilder = GroupedOpenApi.builder().group("quartz-manager").pathsToMatch(paths); + openApiCustomiser.ifPresent(oaCustomizer -> groupedOpenApiBuilder.addOpenApiCustomiser(oaCustomizer)); + return groupedOpenApiBuilder.build(); + } + + } diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/JobController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/JobController.java index 9f02ad6..eb93eed 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/JobController.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/JobController.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.stream.Collectors; @RequestMapping(QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/jobs") -@SecurityRequirement(name = OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME) +@SecurityRequirement(name = OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA) @RestController public class JobController { final private JobService jobService; diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SchedulerController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SchedulerController.java index 2c991db..399dda3 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SchedulerController.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SchedulerController.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; -import static it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME; +import static it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA; import static it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH; /** @@ -27,7 +27,7 @@ import static it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths */ @Slf4j @RestController -@SecurityRequirement(name = BASIC_AUTH_SEC_OAS_SCHEME) +@SecurityRequirement(name = QUARTZ_MANAGER_SEC_OAS_SCHEMA) @RequestMapping(SchedulerController.SCHEDULER_CONTROLLER_BASE_URL) public class SchedulerController { diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SimpleTriggerController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SimpleTriggerController.java index 26f63ed..34448e6 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SimpleTriggerController.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/SimpleTriggerController.java @@ -23,7 +23,7 @@ import javax.validation.Valid; @Slf4j @RequestMapping(SimpleTriggerController.SIMPLE_TRIGGER_CONTROLLER_BASE_URL) -@SecurityRequirement(name = OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME) +@SecurityRequirement(name = OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA) @RestController public class SimpleTriggerController { diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/TriggerController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/TriggerController.java index 9ed005f..976b157 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/TriggerController.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/TriggerController.java @@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; -import static it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME; +import static it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA; import static it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH; @Slf4j @RequestMapping(TriggerController.TRIGGER_CONTROLLER_BASE_URL) -@SecurityRequirement(name = BASIC_AUTH_SEC_OAS_SCHEME) +@SecurityRequirement(name = QUARTZ_MANAGER_SEC_OAS_SCHEMA) @RestController public class TriggerController { diff --git a/quartz-manager-parent/quartz-manager-starter-security/pom.xml b/quartz-manager-parent/quartz-manager-starter-security/pom.xml index d3a6082..44251f9 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/pom.xml +++ b/quartz-manager-parent/quartz-manager-starter-security/pom.xml @@ -70,6 +70,7 @@ org.springdoc springdoc-openapi-ui ${springdoc-openapi.version} + true diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/QuartzManagerSecurityConfig.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/QuartzManagerSecurityConfig.java index ec1ced0..41c6088 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/QuartzManagerSecurityConfig.java +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/QuartzManagerSecurityConfig.java @@ -54,7 +54,7 @@ import static it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths @EnableGlobalMethodSecurity(prePostEnabled = true) public class QuartzManagerSecurityConfig { - private static final String[] PATTERNS_SWAGGER_UI = {"/swagger-ui.html", "/v3/api-docs/**", "/swagger-resources/**", "/webjars/**"}; + private static final String[] PATTERNS_SWAGGER_UI = {"/swagger-ui/**", "/swagger-ui.html", "/v3/api-docs/**", "/swagger-resources/**", "/webjars/**"}; public static final String QUARTZ_MANAGER_API_ANT_MATCHER = QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/**"; public static final String QUARTZ_MANAGER_UI_ANT_MATCHER = QuartzManagerPaths.WEBJAR_PATH + "/**"; @@ -121,11 +121,14 @@ public class QuartzManagerSecurityConfig { } @Bean(name = "quartzManagerWebSecurityCustomizer") - public WebSecurityCustomizer webSecurityCustomizer() { - return (web) -> + public WebSecurityCustomizer webSecurityCustomizer(@Value("${quartz-manager.oas.enabled:false}") Boolean oasEnabled) { + return (web) -> { web.ignoring()// - .antMatchers(HttpMethod.GET, PATTERNS_SWAGGER_UI) // .antMatchers(HttpMethod.GET, QUARTZ_MANAGER_UI_ANT_MATCHER); + if(BooleanUtils.isNotFalse(oasEnabled)) + web.ignoring() + .antMatchers(HttpMethod.GET, PATTERNS_SWAGGER_UI); + }; } @Bean(name = "quartzManagerCorsConfigurationSource") @@ -151,8 +154,7 @@ public class QuartzManagerSecurityConfig { return jwtAuthenticationSuccessHandler; } - // @Bean - public JwtTokenAuthenticationFilter jwtAuthenticationTokenFilter(UserDetailsService userDetailsService) throws Exception { + public JwtTokenAuthenticationFilter jwtAuthenticationTokenFilter(UserDetailsService userDetailsService) { return new JwtTokenAuthenticationFilter(jwtTokenHelper(), userDetailsService); } diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/config/SecurityOpenApiConfig.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/config/SecurityOpenApiConfig.java new file mode 100644 index 0000000..5db97ab --- /dev/null +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/config/SecurityOpenApiConfig.java @@ -0,0 +1,61 @@ +package it.fabioformosa.quartzmanager.api.security.config; + +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.oas.models.parameters.RequestBody; +import io.swagger.v3.oas.models.responses.ApiResponse; +import io.swagger.v3.oas.models.responses.ApiResponses; +import io.swagger.v3.oas.models.security.SecurityScheme; +import it.fabioformosa.quartzmanager.api.common.config.OpenAPIConfigConsts; +import it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths; +import it.fabioformosa.quartzmanager.api.security.properties.JwtSecurityProperties; +import lombok.extern.slf4j.Slf4j; +import org.springdoc.core.customizers.OpenApiCustomiser; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; + +import java.util.Arrays; + +@Slf4j +@ConditionalOnProperty(name = "quartz-manager.oas.enabled") +@Configuration +public class SecurityOpenApiConfig { + + @Order(Ordered.HIGHEST_PRECEDENCE) + @Bean("quartzManagerOpenApiCustomiser") + public OpenApiCustomiser configureQuartzManagerOpenAPI(JwtSecurityProperties jwtSecurityProps) { + return openAPI -> { + if (jwtSecurityProps.getCookieStrategy().isEnabled() == false) + openAPI + .components(new Components().addSecuritySchemes(OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA, buildBasicAuthScheme())); + + openAPI.path(QuartzManagerPaths.QUARTZ_MANAGER_LOGIN_PATH, + new PathItem().post(new Operation() + .operationId("login") + .tags(Arrays.asList("auth")) + .requestBody(new RequestBody().content( + new Content().addMediaType("application/x-www-form-urlencoded", new MediaType().schema(new Schema().type("object") + .addProperties("username", new StringSchema()) + .addProperties("password", new PasswordSchema()) + .required(Arrays.asList("username", "password")) + )))) + .responses(new ApiResponses().addApiResponse("200", new ApiResponse().description("JWT Token to authenticate the next requests"))) + .responses(new ApiResponses().addApiResponse("401", new ApiResponse().description("Unauthorized - Username or password are incorrect!"))) + )); + }; + } + + private SecurityScheme buildBasicAuthScheme() { + return new SecurityScheme() + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT") + .description("A JWT Token in required to access this API. You can obtain a JWT Token by providing the username and password in the login API"); + } + +} diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/controllers/UserController.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/controllers/UserController.java index 0e36eb0..1b4e97f 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/controllers/UserController.java +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/controllers/UserController.java @@ -16,7 +16,7 @@ import static it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths @RestController @Hidden -@SecurityRequirement(name = OpenAPIConfigConsts.BASIC_AUTH_SEC_OAS_SCHEME) +@SecurityRequirement(name = OpenAPIConfigConsts.QUARTZ_MANAGER_SEC_OAS_SCHEMA) @RequestMapping(value = QUARTZ_MANAGER_AUTH_PATH, produces = MediaType.APPLICATION_JSON_VALUE) public class UserController { diff --git a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml index 982e3ba..0ebdb19 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml +++ b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml @@ -18,7 +18,7 @@ UTF-8 UTF-8 - 2.9.2 + 1.5.12 9 @@ -66,6 +66,12 @@ + + org.springdoc + springdoc-openapi-ui + ${springdoc-openapi.version} + true + io.jsonwebtoken jjwt diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/WebShowcaseOpenApiConfig.java b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/WebShowcaseOpenApiConfig.java new file mode 100644 index 0000000..378c337 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/WebShowcaseOpenApiConfig.java @@ -0,0 +1,31 @@ +package it.fabioformosa; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import org.springdoc.core.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class WebShowcaseOpenApiConfig { + + @Bean + public OpenAPI webshowcaseOpenAPI() { + OpenAPI openAPI = new OpenAPI() + .info(new Info() + .title("QUARTZ MANAGER DEMO API") + .description("Quartz Manager- DEMO - REST API") + .version("1.0.0") + .license(new License() + .name("Apache License 2.0") + .url("https://github.com/fabioformosa/quartz-manager/blob/master/LICENSE"))); + return openAPI; + } + + @Bean + public GroupedOpenApi demoOpenApi() { + return GroupedOpenApi.builder().group("demo").packagesToScan("it.fabioformosa.quartzmanager.controllers").build(); + } + +} diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/HealthCheckController.java b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/HealthCheckController.java index 394a353..c03ed52 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/HealthCheckController.java +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/HealthCheckController.java @@ -2,14 +2,13 @@ package it.fabioformosa.quartzmanager.controllers; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; -import lombok.extern.slf4j.Slf4j; - @Slf4j @Hidden @RestController diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml index 854aa83..05e82c6 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml @@ -1,5 +1,7 @@ quartz-manager: jobClassPackages: it.fabioformosa.quartzmanager.jobs + oas: + enabled: true security: jwt: secret: "bibidibobidiboo" @@ -19,6 +21,9 @@ quartz-manager: user: "quartzmanager" password: "quartzmanager" +#springdoc: +# paths-to-exclude: "/quartz-manager/**" + spring: thymeleaf: cache: false