mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2025-12-30 22:23:15 +09:00
#55 migrated swagger2 to openApi specification 3
This commit is contained in:
@@ -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> 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/");
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
it.fabioformosa.quartzmanager.configuration.SchedulerConfig,\
|
||||
it.fabioformosa.quartzmanager.configuration.SwaggerConfig,\
|
||||
it.fabioformosa.quartzmanager.configuration.WebsocketConfig
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
it.fabioformosa.quartzmanager.configuration.SchedulerConfig,\
|
||||
it.fabioformosa.quartzmanager.configuration.OpenApiConfig,\
|
||||
it.fabioformosa.quartzmanager.configuration.WebsocketConfig
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Void> refreshSession(HttpSession session) {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user