SpringGateway集成Spring OAuth2
Gateway网关配置- id:oauthuri: lb://oauth-serverpredicates:- Path=/oauth/**filters:- StripPrefix=0- PreserveHostHeader经过K8s+Docker环境实测,PreserveHostHeader必须设置, 否则Spring OAuth转发之后的响应中Location的中的域名采用的是IP+Port
Gateway网关配置
- id: oauth
uri: lb://oauth-server
predicates:
- Path=/oauth/**
filters:
- StripPrefix=0
- PreserveHostHeader
经过K8s+Docker环境实测,PreserveHostHeader必须设置, 否则Spring OAuth转发之后的响应中Location的中的域名采用的是IP+Port
StripPrefix=0
StripPrefix: 参数表示在将请求发送到下游之前从请求中剥离的路径个数.
例如: 当通过网关向/oauth/login发出请求时:
StripPrefix=0请求url将类似于http://gateway-hostname/oauth/login
StripPrefix=1请求url将类似于http://gateway-hostname/login
PreserveHostHeader
@Configuration
@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMissing = true)
@EnableConfigurationProperties
@AutoConfigureBefore(HttpHandlerAutoConfiguration.class)
@AutoConfigureAfter({GatewayLoadBalancerClientAutoConfiguration.class, GatewayClassPathWarningAutoConfiguration.class})
@ConditionalOnClass(DispatcherHandler.class)
public class GatewayAutoConfiguration {
//......
@Bean
public PreserveHostHeaderGatewayFilterFactory preserveHostHeaderGatewayFilterFactory() {
return new PreserveHostHeaderGatewayFilterFactory();
}
//......
}
PreserveHostHeaderGatewayFilter就是在gateway转发请求的时候把原始请求的host头部带上,转发给目标服务。默认该filter是启用的。
简易网关设计
源码(还在完善中)
xiaxinyu/ms-gatewayhttps://gitee.com/xiaxinyu3_admin/ms-gateway.githttps://gitee.com/xiaxinyu3_admin/ms-authorization.githttps://gitee.com/xiaxinyu3_admin/ms-authorization.git
更多推荐
所有评论(0)