server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
ÎļþÃû´Ó server/system_gateway/src/main/java/com/doumee/api/JwtAuthController.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.doumee.api; package com.doumee.api.gateway; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.config.jwt.JwtProperties; server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
ÎļþÒÑɾ³ý server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.doumee.config.swagger; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.google.common.base.Function; import com.google.common.base.Optional; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.RequestHandler; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import java.util.function.Predicate; /** * Swaggeré ç½® * @author Eva.Caesar Liu * @date 2022/03/11 10:24 */ @Configuration @EnableOpenApi @EnableKnife4j public class SwaggerConfig { @Value("${swagger.host:}") private String host; @Value("${swagger.title:æ¥å£ææ¡£}") private String title; @Value("${swagger.description:}") private String description; @Value("${project.version:}") private String version; @Bean public ApiInfo getApiInfo() { return new ApiInfoBuilder() .title(title) .description(description) .version(version) .build(); } @Bean public Docket getDocket2() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(this.getApiInfo()).groupName("default") .host(host) .select() .apis( basePackage("com.doumee.api.gateway;")) // 设置éè¦è¢«æ«æçç±»ï¼è¿é设置为添å äº@Api注解çç±» // .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .paths(PathSelectors.any()) .build(); } /** * éåbasePackageæ¹æ³ï¼ä½¿è½å¤å®ç°å¤å 访é®ï¼å¤å¶è´´ä¸å» * @author teavamc * @date 2019/1/26 * @return com.google.common.base.Predicate<springfox.documentation.RequestHandler> */ public static Predicate<RequestHandler> basePackage(String basePackage) { return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true); } private static Function<Class<?>, Boolean> handlerPackage(String basePackage) { return input -> { // 循ç¯å¤æå¹é for (String strPackage : basePackage.split(";")) { boolean isMatch = input.getPackage().getName().startsWith(strPackage); if (isMatch) { return true; } } return false; }; } private static Optional<? extends Class<?>> declaringClass(RequestHandler input) { return Optional.fromNullable(input.declaringClass()); } } server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerResourceConfig.java
@@ -25,7 +25,7 @@ @Override public List<SwaggerResource> get() { List<SwaggerResource> resources = new ArrayList<>(); resources.add(swaggerResource("gatewayService", "v2/api-docs?group=default")); resources.add(swaggerResource("ç½ç®¡æå¡æ¥å£", "v2/api-docs?group=default")); List<String> routes = new ArrayList<>(); routeLocator.getRoutes().subscribe(route -> routes.add(route.getId())); gatewayProperties.getRoutes().stream().filter(routeDefinition -> routes.contains(routeDefinition.getId())).forEach(route -> { @@ -35,7 +35,6 @@ predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0") .replace("**", "v2/api-docs?group=default")))); }); return resources; } server/system_gateway/src/main/resources/application.yml
@@ -1,6 +1,6 @@ # 项ç®ä¿¡æ¯é ç½® project: name: è®¿å®¢ç³»ç» name: 宿³°ç©æµè®¿å®¢ç³»ç» version: 1.0.0 env: development # env: production server/system_gateway/src/main/resources/bootstrap.yml
@@ -28,24 +28,30 @@ - id: meetingAdmin name: ä¼è®®å®¤å¾®æå¡ uri: lb://meetingAdmin # uri: http://localhost:10013 # æè¨,è·¯å¾ç¸å¹é çè¿è¡è·¯ç± predicates: - Path=/meetingAdmin/** filters: - SwaggerHeaderFilter - StripPrefix=1 - id: visitsAdmin uri: lb://visitsAdmin name: 访客系ç»å¾®æå¡ # uri: http://localhost:10028 # æè¨,è·¯å¾ç¸å¹é çè¿è¡è·¯ç± predicates: - Path=/visitsAdmin/** filters: - SwaggerHeaderFilter - StripPrefix=1 - id: systemTimer uri: lb://systemTimer name: 宿¶ä»»å¡å¾®æå¡ # æè¨,è·¯å¾ç¸å¹é çè¿è¡è·¯ç± predicates: - Path=/systemTimer/** filters: - SwaggerHeaderFilter - StripPrefix=1 management: endpoints: web: server/system_timer/src/main/java/com/doumee/api/timer/QuartzController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/timer/QuartzController.java ÐÞ¸Ä @@ -9,7 +9,7 @@ import javax.annotation.Resource; @RestController @RequestMapping("/business/quartz") @RequestMapping("/cloudService/quartz") @Api(tags = "宿¶ä»»å¡æ¥å£") public class QuartzController { server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.doumee.config.swagger; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.google.common.base.Function; import com.google.common.base.Optional; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.RequestHandler; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import java.util.function.Predicate; /** * Swaggeré ç½® * @author Eva.Caesar Liu * @date 2022/03/11 10:24 */ @Configuration @EnableOpenApi @EnableKnife4j public class SwaggerConfig { @Value("${swagger.host:}") private String host; @Value("${swagger.title:æ¥å£ææ¡£}") private String title; @Value("${swagger.description:}") private String description; @Value("${project.version:}") private String version; @Bean public ApiInfo getApiInfo() { return new ApiInfoBuilder() .title(title) .description(description) .version(version) .build(); } @Bean public Docket getDocket2() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(this.getApiInfo()).groupName("default") .host(host) .select() .apis( basePackage("com.doumee.api.timer;")) // 设置éè¦è¢«æ«æçç±»ï¼è¿é设置为添å äº@Api注解çç±» // .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .paths(PathSelectors.any()) .build(); } /** * éåbasePackageæ¹æ³ï¼ä½¿è½å¤å®ç°å¤å 访é®ï¼å¤å¶è´´ä¸å» * @author teavamc * @date 2019/1/26 * @return com.google.common.base.Predicate<springfox.documentation.RequestHandler> */ public static Predicate<RequestHandler> basePackage(String basePackage) { return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true); } private static Function<Class<?>, Boolean> handlerPackage(String basePackage) { return input -> { // 循ç¯å¤æå¹é for (String strPackage : basePackage.split(";")) { boolean isMatch = input.getPackage().getName().startsWith(strPackage); if (isMatch) { return true; } } return false; }; } private static Optional<? extends Class<?>> declaringClass(RequestHandler input) { return Optional.fromNullable(input.declaringClass()); } } server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package com.doumee.config.swagger; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Swaggeræ¦æªå¨ * @author Eva.Caesar Liu * @date 2022/04/18 18:12 */ @Slf4j @Component public class SwaggerInterceptor implements HandlerInterceptor { @Value("${swagger.enabled:false}") private Boolean enabledSwagger; @Value("${swagger.redirect-uri:/}") private String redirectUri; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { if (!enabledSwagger) { String uri = request.getContextPath(); if (StringUtils.isNotBlank(redirectUri)) uri = request.getContextPath() + redirectUri; if (StringUtils.isBlank(uri)) uri = "/"; try { response.sendRedirect(uri); } catch (IOException e) { log.error(String.format("Redirect to '%s' for swagger throw an exception : %s", uri, e.getMessage()), e); } return Boolean.FALSE; } return Boolean.TRUE; } } server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.doumee.config.swagger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * Swaggeræ¦æªå¨é ç½® * @author Eva.Caesar Liu * @date 2022/04/18 18:12 */ @Configuration public class SwaggerInterceptorConfig implements WebMvcConfigurer { @Autowired private SwaggerInterceptor swaggerInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(swaggerInterceptor).addPathPatterns("/swagger-ui.html", "/doc.html"); } } server/system_timer/src/main/resources/application-dev.yml
@@ -23,10 +23,10 @@ # username: 4derRb4Sw5EkqUMI # password: v50N97wf4av8Q8I4 #knife4j: # enable: true # basic: # enable: true knife4j: enable: true basic: enable: true # username: admin # password: 111111 server/system_timer/src/main/resources/application.yml
@@ -8,7 +8,7 @@ spring: application: name: system_timer name: systemTimer profiles: active: dev @@ -64,7 +64,7 @@ compression: enabled: true mime-types: application/json port: 10010 port: 10011 tomcat: max-swallow-size: -1 servlet: server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@ spring: application: name: system-timer name: systemTimer # å®å ¨é ç½® security: # éªç¾å ¬é¥å°å