diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java deleted file mode 100644 index c52b9d9..0000000 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java +++ /dev/null @@ -1,59 +0,0 @@ -package it.fabioformosa.quartzmanager.configuration; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; - -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.BasicAuth; -import springfox.documentation.service.Contact; -import springfox.documentation.service.VendorExtension; -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; - -@Configuration -@EnableSwagger2 -public class SwaggerConfig extends WebMvcConfigurationSupport { - - @Bean - public Docket api() { - return new Docket(DocumentationType.SWAGGER_2).select() - .apis(RequestHandlerSelectors.basePackage("it.fabioformosa.quartzmanager.controllers")) // - .build() // - .apiInfo(apiInfo()) // - .securitySchemes(Arrays.asList(new BasicAuth("basicAuth"))) - .securityContexts(Collections.singletonList(securityContext())); - } - - @SuppressWarnings("rawtypes") - private ApiInfo apiInfo() { - String title = "QUARTZ MANAGER API"; - String description = "Quartz Manager - REST API"; - String version = "1.0.0"; - String termsOfServiceUrl = null; - Contact contact = null; - String license = "Apache License 2.0"; - String licenseUrl = "https://github.com/fabioformosa/quartz-manager/blob/master/LICENSE"; - List vendorExtension = Collections.emptyList(); - return new ApiInfo(title, description, version, termsOfServiceUrl, contact, license, licenseUrl, vendorExtension); - } - - private SecurityContext securityContext() { - return SecurityContext.builder().forPaths(PathSelectors.any()).build(); - } - - @Override - protected void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); - } -} diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/resources/META-INF/spring.factories b/quartz-manager-parent/quartz-manager-starter-api/src/main/resources/META-INF/spring.factories index 19f951b..f608554 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/main/resources/META-INF/spring.factories +++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/resources/META-INF/spring.factories @@ -1,4 +1,4 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -it.fabioformosa.quartzmanager.configuration.SchedulerConfig,\ -it.fabioformosa.quartzmanager.configuration.SwaggerConfig,\ -it.fabioformosa.quartzmanager.configuration.WebsocketConfig \ No newline at end of file +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +it.fabioformosa.quartzmanager.configuration.SchedulerConfig,\ +it.fabioformosa.quartzmanager.configuration.OpenApiConfig,\ +it.fabioformosa.quartzmanager.configuration.WebsocketConfig diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/security/configuration/WebSecurityConfigJWT.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/security/configuration/WebSecurityConfigJWT.java index c5bcb07..429ecb6 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/security/configuration/WebSecurityConfigJWT.java +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/security/configuration/WebSecurityConfigJWT.java @@ -51,7 +51,7 @@ import it.fabioformosa.quartzmanager.security.helpers.impl.QuartzManagerHttpSecu @EnableGlobalMethodSecurity(prePostEnabled = true) public class WebSecurityConfigJWT extends WebSecurityConfigurerAdapter { - private static final String[] PATTERNS_SWAGGER_UI = {"/swagger-ui.html", "/v2/api-docs", "/swagger-resources/**", "/webjars/**"}; + private static final String[] PATTERNS_SWAGGER_UI = {"/swagger-ui.html", "/v3/api-docs/**", "/swagger-resources/**", "/webjars/**"}; private static final String LOGIN_PATH = "/quartz-manager/api/login"; private static final String LOGOUT_PATH = "/quartz-manager/api/logout"; diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java index f1a2ac0..a4b21c8 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java @@ -1,25 +1,25 @@ -package it.fabioformosa.quartzmanager.controllers; - -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 io.swagger.annotations.Api; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@RestController -@RequestMapping -@Api(value = "Healthy Check") -public class QuartzManagerController { - - @ResponseStatus(code = HttpStatus.OK) - @GetMapping("/") - public void healthyCheck() { - log.debug("Healthy check called"); - } - - -} +package it.fabioformosa.quartzmanager.controllers; + +import io.swagger.v3.oas.annotations.Operation; +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 +@RestController +@RequestMapping +public class QuartzManagerController { + + @ResponseStatus(code = HttpStatus.OK) + @GetMapping("/") + @Operation(description = "Healthy Check") + public void healthyCheck() { + log.debug("Healthy check called"); + } + + +} diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java index ebfbe12..5990624 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java @@ -1,7 +1,6 @@ package it.fabioformosa.quartzmanager.controllers; -import javax.servlet.http.HttpSession; - +import io.swagger.v3.oas.annotations.Operation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; @@ -13,10 +12,9 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; -import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpSession; @Controller -@ApiIgnore @RequestMapping("/session") public class SessionController { @@ -25,6 +23,7 @@ public class SessionController { @GetMapping("/invalidate") @PreAuthorize("hasAuthority('ADMIN')") @ResponseStatus(HttpStatus.NO_CONTENT) + @Operation(hidden = true) public void invalidateSession(HttpSession session) { session.invalidate(); log.info("Invalidated current session!"); @@ -32,6 +31,7 @@ public class SessionController { @GetMapping("/refresh") @PreAuthorize("hasAuthority('ADMIN')") + @Operation(hidden = true) public HttpEntity refreshSession(HttpSession session) { return new ResponseEntity<>(HttpStatus.OK); }