diff --git a/doc/md/deploy.md b/doc/md/deploy.md index 3e27bccfb..cd85756e2 100644 --- a/doc/md/deploy.md +++ b/doc/md/deploy.md @@ -40,11 +40,23 @@ spring: driver-class-name: com.mysql.jdbc.Driver username: root password: lengleng - url: jdbc:mysql://mysql:3306/pigxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false + url: jdbc:pigx-mysql://mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false ``` +### 四、配置本地hosts -### 四、pigx-ui: +从1.6.3开始,项目采用HOSTS配置ip的方式,所以开始运行项目前确保你的本机hosts文件中存在以下片段(以完全本机开发为例): + +``` +# 本地测试环境 +127.0.0.1 pigx-mysql +127.0.0.1 pigx-zookeeper +127.0.0.1 pigx-redis +127.0.0.1 pigx-gateway +127.0.0.1 pigx-eureka +``` + +### 五、pigx-ui: ``` git clone https://www.gitee.wang/pig/pigx-ui.git diff --git a/docker-compose.yml b/docker-compose.yml index eebaef636..ea432c59b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,11 @@ version: '2' services: + pigx-zookeeper: + image: zookeeper:3.4.13 + ports: + - 2181:2181 + restart: always + pigx-redis: image: redis:4.0.10 ports: @@ -15,17 +21,12 @@ services: - 1025:1025 pigx-config: - links: - - pigx-eureka build: context: ./ dockerfile: ./pigx-config/Dockerfile restart: always pigx-gateway: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-gateway/Dockerfile @@ -34,28 +35,18 @@ services: - 9999:9999 pigx-auth: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-auth/Dockerfile restart: always pigx-upms: - links: - - pigx-eureka - - pigx-redis - - pigx-gateway build: context: ./ dockerfile: ./pigx-upms/pigx-upms-biz/Dockerfile restart: always pigx-monitor: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-visual/pigx-monitor/Dockerfile @@ -64,9 +55,6 @@ services: - 5001:5001 pigx-daemon: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-visual/pigx-daemon/Dockerfile @@ -75,9 +63,6 @@ services: - 5002:5002 pigx-codegen: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-visual/pigx-codegen/Dockerfile @@ -93,9 +78,6 @@ services: restart: always pigx-tx-manager: - links: - - pigx-eureka - - pigx-redis build: context: ./ dockerfile: ./pigx-visual/pigx-tx-manager/Dockerfile diff --git a/pigx-auth/src/main/resources/bootstrap.yml b/pigx-auth/src/main/resources/bootstrap.yml index ae2131512..4a98cab0c 100644 --- a/pigx-auth/src/main/resources/bootstrap.yml +++ b/pigx-auth/src/main/resources/bootstrap.yml @@ -20,4 +20,4 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pigx-common/pigx-common-core/src/main/resources/logback-spring.xml b/pigx-common/pigx-common-core/src/main/resources/logback-spring.xml index 4a0131d18..b000418dc 100644 --- a/pigx-common/pigx-common-core/src/main/resources/logback-spring.xml +++ b/pigx-common/pigx-common-core/src/main/resources/logback-spring.xml @@ -21,7 +21,7 @@ ${log.path}/debug.log - ${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz + ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz 50MB 30 diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java index f49d86b20..bf49a3f6d 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java @@ -18,6 +18,8 @@ package com.pig4cloud.pigx.common.security.component; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; @@ -25,10 +27,14 @@ import org.springframework.security.oauth2.config.annotation.web.configurers.Res import org.springframework.security.oauth2.provider.token.DefaultAccessTokenConverter; import org.springframework.security.oauth2.provider.token.DefaultUserAuthenticationConverter; import org.springframework.security.oauth2.provider.token.RemoteTokenServices; +import org.springframework.web.client.RestTemplate; /** * @author lengleng * @date 2018/6/22 + *

+ * 1. 支持remoteTokenServices 负载均衡 + * 2. 支持 获取用户全部信息 */ public abstract class BaseResourceServerConfigurerAdapter extends ResourceServerConfigurerAdapter { @Autowired @@ -40,21 +46,49 @@ public abstract class BaseResourceServerConfigurerAdapter extends ResourceServer @Autowired protected UserDetailsService userDetailsService; + + /** + * 默认的配置,对外暴露 + * + * @param http + * @throws Exception + */ @Override public abstract void configure(HttpSecurity http) throws Exception; /** - * why add resourceId - * https://stackoverflow.com/questions/28703847/how-do-you-set-a-resource-id-for-a-token + * 提供子类重写 + *

+ * 1. 不重写,默认支持获取雍熙 + * 2. 重写notGetUser,提供性能 + *

+ * see codegen ResourceServerConfigurer * * @param resources */ @Override public void configure(ResourceServerSecurityConfigurer resources) { + canGetUser(resources); + } + + @Bean + @LoadBalanced + public RestTemplate lbRestTemplate() { + return new RestTemplate(); + } + + + /** + * 不获取用户详细 只有用户名 + * + * @param resources + */ + protected void notGetUser(ResourceServerSecurityConfigurer resources) { DefaultAccessTokenConverter accessTokenConverter = new DefaultAccessTokenConverter(); DefaultUserAuthenticationConverter userTokenConverter = new DefaultUserAuthenticationConverter(); - userTokenConverter.setUserDetailsService(userDetailsService); accessTokenConverter.setUserTokenConverter(userTokenConverter); + + remoteTokenServices.setRestTemplate(lbRestTemplate()); remoteTokenServices.setAccessTokenConverter(accessTokenConverter); resources.authenticationEntryPoint(resourceAuthExceptionEntryPoint) .accessDeniedHandler(pigAccessDeniedHandler) @@ -62,4 +96,22 @@ public abstract class BaseResourceServerConfigurerAdapter extends ResourceServer } + /** + * 上下文中获取用户全部信息,两次调用userDetailsService,影响性能 + * + * @param resources + */ + private void canGetUser(ResourceServerSecurityConfigurer resources) { + DefaultAccessTokenConverter accessTokenConverter = new DefaultAccessTokenConverter(); + DefaultUserAuthenticationConverter userTokenConverter = new DefaultUserAuthenticationConverter(); + userTokenConverter.setUserDetailsService(userDetailsService); + accessTokenConverter.setUserTokenConverter(userTokenConverter); + + remoteTokenServices.setRestTemplate(lbRestTemplate()); + remoteTokenServices.setAccessTokenConverter(accessTokenConverter); + resources.authenticationEntryPoint(resourceAuthExceptionEntryPoint) + .accessDeniedHandler(pigAccessDeniedHandler) + .tokenServices(remoteTokenServices); + } + } diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerTokenRelayAutoConfiguration.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerTokenRelayAutoConfiguration.java index 78577d921..ca8a2aac0 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerTokenRelayAutoConfiguration.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerTokenRelayAutoConfiguration.java @@ -1,23 +1,19 @@ package com.pig4cloud.pigx.common.security.component; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.*; +import org.springframework.boot.autoconfigure.condition.AllNestedConditions; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration; import org.springframework.cloud.security.oauth2.client.AccessTokenContextRelay; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; -import org.springframework.core.annotation.Order; import org.springframework.security.oauth2.client.OAuth2ClientContext; import org.springframework.security.oauth2.config.annotation.web.configuration.OAuth2ClientConfiguration; import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfiguration; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.lang.annotation.*; /** diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignClientConfiguration.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignClientConfiguration.java index 211b0bea9..c9c4fee6e 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignClientConfiguration.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignClientConfiguration.java @@ -21,7 +21,6 @@ package com.pig4cloud.pigx.common.security.feign; import feign.RequestInterceptor; import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.security.oauth2.client.AccessTokenContextRelay; import org.springframework.context.annotation.Bean; diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/mobile/MobileAuthenticationFilter.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/mobile/MobileAuthenticationFilter.java index 98494a522..085dffd03 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/mobile/MobileAuthenticationFilter.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/mobile/MobileAuthenticationFilter.java @@ -24,7 +24,6 @@ import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationEventPublisher; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.DefaultAuthenticationEventPublisher; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; diff --git a/pigx-config/src/main/resources/bootstrap.yml b/pigx-config/src/main/resources/bootstrap.yml index e61671816..b175a2426 100644 --- a/pigx-config/src/main/resources/bootstrap.yml +++ b/pigx-config/src/main/resources/bootstrap.yml @@ -19,7 +19,7 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ # 暴露监控端点 management: diff --git a/pigx-config/src/main/resources/config/application-dev.yml b/pigx-config/src/main/resources/config/application-dev.yml index 49df6da29..333a0a25b 100644 --- a/pigx-config/src/main/resources/config/application-dev.yml +++ b/pigx-config/src/main/resources/config/application-dev.yml @@ -6,7 +6,7 @@ jasypt: spring: redis: password: - host: redis + host: pigx-redis # Jackson配置 jackson: time-zone: GMT+8 @@ -78,7 +78,7 @@ mybatis-plus: swagger: title: PigX Swagger API description: 全宇宙最牛逼的Spring Cloud微服务开发脚手架 - version: 1.6.2 + version: 1.7.0 license: Powered By PigX licenseUrl: https://pig4cloud.com/ terms-of-service-url: https://pig4cloud.com/ @@ -93,12 +93,17 @@ swagger: - scope: server description: server all token-url-list: - - ${security.auth.server}/token + - http://pigx-gateway:9999/auth/oauth/token ## spring security 配置 security: - auth: - server: http://lengleng:9999/auth/oauth oauth2: resource: - token-info-uri: ${security.auth.server}/check_token + loadBalanced: true + token-info-uri: http://pigx-auth/oauth/check_token + +# log配置 +logging: + level: + root: warn + com.pig4cloud.pigx: info diff --git a/pigx-config/src/main/resources/config/pigx-auth-dev.yml b/pigx-config/src/main/resources/config/pigx-auth-dev.yml index f132fb05f..4ade36d4d 100644 --- a/pigx-config/src/main/resources/config/pigx-auth-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-auth-dev.yml @@ -4,5 +4,5 @@ spring: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver username: root - password: 123456 - url: jdbc:mysql://mysql:3306/pigxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false + password: root + url: jdbc:mysql://pigx-mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false diff --git a/pigx-config/src/main/resources/config/pigx-codegen-dev.yml b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml index 923770e6a..6dceea95d 100644 --- a/pigx-config/src/main/resources/config/pigx-codegen-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml @@ -12,7 +12,7 @@ spring: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver username: root - password: 123456 - url: jdbc:mysql://mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false + password: root + url: jdbc:mysql://pigx-mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false resources: static-locations: classpath:/static/,classpath:/views/ diff --git a/pigx-config/src/main/resources/config/pigx-daemon-dev.yml b/pigx-config/src/main/resources/config/pigx-daemon-dev.yml index db0e40c61..22f27306f 100644 --- a/pigx-config/src/main/resources/config/pigx-daemon-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-daemon-dev.yml @@ -13,12 +13,12 @@ spring: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver username: root - password: 123456 - url: jdbc:mysql://mysql:3306/pigxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false + password: root + url: jdbc:mysql://pigx-mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false elasticjob: # 分布式任务协调依赖zookeeper zookeeper: - server-lists: zookeeper:2181 + server-lists: pigx-zookeeper:2181 namespace: pigx-daemon # 普通任务 simples: diff --git a/pigx-config/src/main/resources/config/pigx-gateway-dev.yml b/pigx-config/src/main/resources/config/pigx-gateway-dev.yml index be92d7cb7..47de657b8 100644 --- a/pigx-config/src/main/resources/config/pigx-gateway-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-gateway-dev.yml @@ -11,7 +11,7 @@ spring: - Path=/auth/** filters: # 验证码处理 - - ImageCodeGatewayFilter + - ValidateCodeGatewayFilter # 前端密码解密 - PasswordDecoderFilter #UPMS 模块 diff --git a/pigx-config/src/main/resources/config/pigx-upms-dev.yml b/pigx-config/src/main/resources/config/pigx-upms-dev.yml index 40cc25626..1f5ea33bc 100644 --- a/pigx-config/src/main/resources/config/pigx-upms-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-upms-dev.yml @@ -12,8 +12,8 @@ spring: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver username: root - password: 123456 - url: jdbc:mysql://mysql:3306/pigxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false + password: root + url: jdbc:mysql://pigx-mysql:3306/pigx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true # swagger相关配置,覆盖全局配置 swagger: diff --git a/pigx-config/src/main/resources/logback-spring.xml b/pigx-config/src/main/resources/logback-spring.xml index 578b8c92e..453ad895a 100644 --- a/pigx-config/src/main/resources/logback-spring.xml +++ b/pigx-config/src/main/resources/logback-spring.xml @@ -21,7 +21,7 @@ ${log.path}/debug.log - ${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz + ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz 50MB 30 @@ -34,7 +34,7 @@ ${log.path}/error.log - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz + ${log.path}/%d{yyyy-MM, aux}/error.%d{yyyy-MM-dd}.%i.log.gz 50MB 30 diff --git a/pigx-eureka/src/main/resources/logback-spring.xml b/pigx-eureka/src/main/resources/logback-spring.xml index 578b8c92e..74e81d81d 100644 --- a/pigx-eureka/src/main/resources/logback-spring.xml +++ b/pigx-eureka/src/main/resources/logback-spring.xml @@ -21,7 +21,7 @@ ${log.path}/debug.log - ${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz + ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz 50MB 30 diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PasswordDecoderFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PasswordDecoderFilter.java index 4c9394c37..b7de0e1e4 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PasswordDecoderFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PasswordDecoderFilter.java @@ -65,7 +65,7 @@ public class PasswordDecoderFilter extends AbstractGatewayFilterFactory { ServerHttpRequest request = exchange.getRequest(); // 不是登录请求,直接向下执行 - if (!StrUtil.containsAnyIgnoreCase(request.getURI().getPath(), ImageCodeGatewayFilter.OAUTH_TOKEN_URL)) { + if (!StrUtil.containsAnyIgnoreCase(request.getURI().getPath(), ValidateCodeGatewayFilter.OAUTH_TOKEN_URL)) { return chain.filter(exchange); } diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java index bb608d7f5..2ef734f35 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java @@ -18,7 +18,6 @@ package com.pig4cloud.pigx.gateway.filter; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; -import com.pig4cloud.pigx.gateway.config.SwaggerProvider; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; @@ -42,7 +41,8 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.a *

* 1. 对请求头中参数进行处理 from 参数进行清洗 * 2. 重写StripPrefix = 1,支持全局 - * 3. 支持swagger添加X-Forwarded-Prefix header + *

+ * 支持swagger添加X-Forwarded-Prefix header (F SR2 已经支持,不需要自己维护) */ @Component public class PigxRequestGlobalFilter implements GlobalFilter, Ordered { @@ -73,15 +73,8 @@ public class PigxRequestGlobalFilter implements GlobalFilter, Ordered { .build(); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, newRequest.getURI()); - // 3. 支持swagger添加X-Forwarded-Prefix header - String path = request.getURI().getPath(); - if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) { - return chain.filter(exchange.mutate().request(newRequest).build()); - } - String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI)); return chain.filter(exchange.mutate() .request(newRequest.mutate() - .header(HEADER_NAME, basePath) .build()).build()); } diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ImageCodeGatewayFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java similarity index 98% rename from pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ImageCodeGatewayFilter.java rename to pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java index 7ebd861a8..a32118d78 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ImageCodeGatewayFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java @@ -42,7 +42,7 @@ import java.io.IOException; */ @Slf4j @Component -public class ImageCodeGatewayFilter extends AbstractGatewayFilterFactory { +public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory { public static final String DEFAULT_CODE_KEY = "DEFAULT_CODE_KEY"; public static final String OAUTH_TOKEN_URL = "/oauth/token"; private static final String BASIC_ = "Basic "; diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/HystrixFallbackHandler.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/HystrixFallbackHandler.java index ec3f15194..649cc8809 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/HystrixFallbackHandler.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/HystrixFallbackHandler.java @@ -27,6 +27,10 @@ import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.reactive.function.server.ServerResponse; import reactor.core.publisher.Mono; +import java.util.Optional; + +import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR; + /** * @author lengleng * @date 2018/7/5 @@ -37,7 +41,10 @@ import reactor.core.publisher.Mono; public class HystrixFallbackHandler implements HandlerFunction { @Override public Mono handle(ServerRequest serverRequest) { - log.error("网关执行请求:{}失败,hystrix服务降级处理", serverRequest.uri()); + Optional originalUris = serverRequest.attribute(GATEWAY_ORIGINAL_REQUEST_URL_ATTR); + + originalUris.ifPresent(originalUri -> log.error("网关执行请求:{}失败,hystrix服务降级处理", originalUri)); + return ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR.value()) .contentType(MediaType.TEXT_PLAIN).body(BodyInserters.fromObject("服务异常")); } diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java index f9c8c93a4..a144ee7ac 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java @@ -18,7 +18,7 @@ package com.pig4cloud.pigx.gateway.handler; import com.google.code.kaptcha.Producer; -import com.pig4cloud.pigx.gateway.filter.ImageCodeGatewayFilter; +import com.pig4cloud.pigx.gateway.filter.ValidateCodeGatewayFilter; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ByteArrayResource; @@ -58,7 +58,7 @@ public class ImageCodeHandler implements HandlerFunction { //保存验证码信息 String randomStr = serverRequest.queryParam("randomStr").get(); - redisTemplate.opsForValue().set(ImageCodeGatewayFilter.DEFAULT_CODE_KEY + randomStr, text, 60, TimeUnit.SECONDS); + redisTemplate.opsForValue().set(ValidateCodeGatewayFilter.DEFAULT_CODE_KEY + randomStr, text, 60, TimeUnit.SECONDS); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); diff --git a/pigx-gateway/src/main/resources/bootstrap.yml b/pigx-gateway/src/main/resources/bootstrap.yml index 32d17c105..5916dfdb8 100644 --- a/pigx-gateway/src/main/resources/bootstrap.yml +++ b/pigx-gateway/src/main/resources/bootstrap.yml @@ -22,6 +22,6 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java index 04d863b2f..4857eae85 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java @@ -19,7 +19,6 @@ package com.pig4cloud.pigx.admin.service.impl; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/bootstrap.yml b/pigx-upms/pigx-upms-biz/src/main/resources/bootstrap.yml index c9d3197ee..ba90e1d06 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/bootstrap.yml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/bootstrap.yml @@ -16,9 +16,6 @@ spring: discovery: enabled: true service-id: pigx-config - datasource: - url: - type: com.zaxxer.hikari.HikariDataSource # 注册中心配置 eureka: @@ -26,4 +23,4 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/ResourceServerConfigurer.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/ResourceServerConfigurer.java index 86dce1ae9..351c636a0 100644 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/ResourceServerConfigurer.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/ResourceServerConfigurer.java @@ -44,13 +44,12 @@ public class ResourceServerConfigurer extends BaseResourceServerConfigurerAdapte } /** - * 重写抽象类实现,不需要调用feign 获取 userdetils + * 重写抽象类实现,不需要调用feign 获取 userDetailsService * * @param resources */ @Override public void configure(ResourceServerSecurityConfigurer resources) { - resources.authenticationEntryPoint(resourceAuthExceptionEntryPoint) - .accessDeniedHandler(pigAccessDeniedHandler); + notGetUser(resources); } } diff --git a/pigx-visual/pigx-codegen/src/main/resources/bootstrap.yml b/pigx-visual/pigx-codegen/src/main/resources/bootstrap.yml index 0ef979fd6..5d94b0eeb 100644 --- a/pigx-visual/pigx-codegen/src/main/resources/bootstrap.yml +++ b/pigx-visual/pigx-codegen/src/main/resources/bootstrap.yml @@ -20,4 +20,7 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ +logging: + level: + root: info diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm b/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm index 91078163a..cc4d4e978 100755 --- a/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm +++ b/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm @@ -1,7 +1,5 @@ package ${package}.${moduleName}.controller; -import java.util.Map; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.plugins.Page; @@ -10,6 +8,7 @@ import com.pig4cloud.pigx.common.core.util.Query; import ${package}.${moduleName}.entity.${className}; import ${package}.${moduleName}.service.${className}Service; import com.pig4cloud.pigx.common.core.util.R; +import java.util.Map; /** diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java index 7dca50923..e6daefc83 100644 --- a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java +++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java @@ -50,7 +50,6 @@ public class ResourceServerConfigurer extends BaseResourceServerConfigurerAdapte */ @Override public void configure(ResourceServerSecurityConfigurer resources) { - resources.authenticationEntryPoint(resourceAuthExceptionEntryPoint) - .accessDeniedHandler(pigAccessDeniedHandler); + notGetUser(resources); } } diff --git a/pigx-visual/pigx-daemon/src/main/resources/bootstrap.yml b/pigx-visual/pigx-daemon/src/main/resources/bootstrap.yml index c38740c2a..88c5cbaf0 100644 --- a/pigx-visual/pigx-daemon/src/main/resources/bootstrap.yml +++ b/pigx-visual/pigx-daemon/src/main/resources/bootstrap.yml @@ -20,4 +20,4 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pigx-visual/pigx-monitor/src/main/resources/bootstrap.yml b/pigx-visual/pigx-monitor/src/main/resources/bootstrap.yml index 4965a578e..fc2891602 100644 --- a/pigx-visual/pigx-monitor/src/main/resources/bootstrap.yml +++ b/pigx-visual/pigx-monitor/src/main/resources/bootstrap.yml @@ -20,4 +20,4 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pigx-visual/pigx-tx-manager/src/main/resources/bootstrap.yml b/pigx-visual/pigx-tx-manager/src/main/resources/bootstrap.yml index 0e569d048..9d47a0818 100644 --- a/pigx-visual/pigx-tx-manager/src/main/resources/bootstrap.yml +++ b/pigx-visual/pigx-tx-manager/src/main/resources/bootstrap.yml @@ -20,5 +20,5 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://pig:pig@lengleng:1025/eureka/ + defaultZone: http://pig:pig@pigx-eureka:1025/eureka/ diff --git a/pom.xml b/pom.xml index 638c86579..c7aa9d064 100644 --- a/pom.xml +++ b/pom.xml @@ -30,14 +30,14 @@ https://www.pig4cloud.com - 1.6.3 - 2.0.4.RELEASE - Finchley.SR1 + 1.7.0 + 2.0.6.RELEASE + Finchley.SR2 Cairo-SR3 UTF-8 1.8 1.8 - 2.0.3 + 2.0.4 4.1.13 2.3 0.0.9