diff --git a/pom.xml b/pom.xml index 5ca762d5d097f02b45ba12842e4ff8ae5d94dce4..e77d25f0785225db5d413da2ef200b23b881ba31 100644 --- a/pom.xml +++ b/pom.xml @@ -15,14 +15,15 @@ org.springframework.boot spring-boot-starter-parent - 2.0.1.RELEASE + 2.1.3.RELEASE 1.8 UTF-8 UTF-8 - 1.1.5 + 1.2.0 + 1.1.5 @@ -30,7 +31,7 @@ org.springframework.cloud spring-cloud-dependencies - Finchley.SR2 + Greenwich.RELEASE pom import @@ -73,7 +74,7 @@ cn.stylefeng.roses biz-support-dict-api - ${kernel.version} + ${roses-biz-support.version} @@ -93,10 +94,6 @@ org.springframework.cloud spring-cloud-starter-netflix-zuul - - org.springframework.cloud - spring-cloud-starter-openfeign - cn.stylefeng.roses diff --git a/src/main/java/cn/stylefeng/roses/gateway/config/ContextConfig.java b/src/main/java/cn/stylefeng/roses/gateway/config/ContextConfig.java index f515df2f2348f540a01933250e7e51cdc609b0ed..254b17496f30fc1ff1a551e5e19e625db2293bed 100644 --- a/src/main/java/cn/stylefeng/roses/gateway/config/ContextConfig.java +++ b/src/main/java/cn/stylefeng/roses/gateway/config/ContextConfig.java @@ -20,8 +20,14 @@ import cn.stylefeng.roses.core.reqres.response.ErrorResponseData; import cn.stylefeng.roses.kernel.logger.chain.aop.ChainOnConsumerAop; import cn.stylefeng.roses.kernel.logger.chain.aop.ChainOnControllerAop; import cn.stylefeng.roses.kernel.logger.chain.aop.ChainOnProviderAop; +import cn.stylefeng.roses.kernel.model.api.AuthService; +import cn.stylefeng.roses.kernel.model.auth.AbstractLoginUser; import cn.stylefeng.roses.kernel.model.exception.ServiceException; import cn.stylefeng.roses.kernel.model.exception.enums.CoreExceptionEnum; +import cn.stylefeng.roses.system.api.context.LoginContext; +import cn.stylefeng.roses.system.api.context.LoginUser; +import com.alibaba.fastjson.parser.ParserConfig; +import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; import org.springframework.boot.web.servlet.error.DefaultErrorAttributes; @@ -40,6 +46,19 @@ import java.util.Map; @Configuration public class ContextConfig { + /** + * 获取当前用户的便捷工具 + */ + @Bean + public LoginContext loginContext(AuthService authService) { + /** + * 让 fastjson把LoginUser可以反序列化成AbstractLoginUser + */ + ObjectDeserializer objectDeserializer = ParserConfig.getGlobalInstance().getDeserializer(LoginUser.class); + ParserConfig.getGlobalInstance().getDeserializers().put(AbstractLoginUser.class, objectDeserializer); + return new LoginContext(authService); + } + /** * zuul错误信息提示重写 */ diff --git a/src/main/java/cn/stylefeng/roses/gateway/config/FilterConfig.java b/src/main/java/cn/stylefeng/roses/gateway/config/FilterConfig.java index 45e01befa7afbbe163568615efc0857fc354fb3e..df07e058fe09c0917d25403eef6e0cc6adc8edde 100644 --- a/src/main/java/cn/stylefeng/roses/gateway/config/FilterConfig.java +++ b/src/main/java/cn/stylefeng/roses/gateway/config/FilterConfig.java @@ -16,6 +16,7 @@ package cn.stylefeng.roses.gateway.config; import cn.stylefeng.roses.gateway.core.filter.JwtTokenFilter; +import cn.stylefeng.roses.gateway.core.filter.PathMatchFilter; import cn.stylefeng.roses.gateway.core.filter.RequestNoGenerateFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -40,10 +41,10 @@ public class FilterConfig { /** * 资源过滤器,检查每次请求是否有权限访问某些资源 */ - //@Bean - //public PathMatchFilter pathMatchFilter() { - // return new PathMatchFilter(); - //} + @Bean + public PathMatchFilter pathMatchFilter() { + return new PathMatchFilter(); + } /** * 请求唯一编号生成器,每次请求入网关时都会生成一个唯一编号,用来记录一次请求的所有日志和异常信息 diff --git a/src/main/java/cn/stylefeng/roses/gateway/modular/service/TokenValidateService.java b/src/main/java/cn/stylefeng/roses/gateway/modular/service/TokenValidateService.java index 36c27b86f0a050bb64d724ca2649735abcc83f20..43c99c28a3bfa940ebee6e72e8a87c62dd433d8d 100644 --- a/src/main/java/cn/stylefeng/roses/gateway/modular/service/TokenValidateService.java +++ b/src/main/java/cn/stylefeng/roses/gateway/modular/service/TokenValidateService.java @@ -66,7 +66,7 @@ public abstract class TokenValidateService { throw new ServiceException(AuthExceptionEnum.TOKEN_EMPTY); } } else { - authToken = authToken.substring("Bearer ".length()); +// authToken = authToken.substring("Bearer ".length()); } return authToken; diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 41e550f252e9c1a0562876e9b3ba2a2a3427b15d..59d1f4306a8d22a272309593a55df19d8522b779 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -7,6 +7,8 @@ spring: config: profile: @spring.active@ label: master + main: + allow-bean-definition-overriding: true ---