提交 b099fb90 编写于 作者: 木下藤吉郎's avatar 木下藤吉郎

Merge branch '网关服务_张凯_20210424' into 'master'

网关服务 张凯 20210424

See merge request !4
# gateway-server # gateway-server
微服务网关,SpringCloudGateway,是实现路由、限流,已经同意鉴权 微服务网关,SpringCloudGateway,是实现路由、限流,以及统一的鉴权过滤
\ No newline at end of file \ No newline at end of file
...@@ -29,7 +29,7 @@ dependencies { ...@@ -29,7 +29,7 @@ dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
implementation 'org.springframework.cloud:spring-cloud-starter-config' implementation 'org.springframework.cloud:spring-cloud-starter-config'
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
implementation 'org.springframework.cloud:spring-cloud-starter-gateway' implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
} }
dependencyManagement { dependencyManagement {
......
package com.zkcloud.gatewayserver.filter;
import org.apache.commons.lang.StringUtils;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
@Component
public class AuthTokenGlobalFilter implements GlobalFilter, Ordered {
@Override
public int getOrder() {
// 值越小,优先级越高
return 0;
}
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
String accessToken = request.getQueryParams().getFirst("access-token");
if (!StringUtils.equalsIgnoreCase(accessToken, "123")) {
ServerHttpResponse response = exchange.getResponse();
String redirectUrl = "http://localhost:8001/index.html";
response.getHeaders().set(HttpHeaders.LOCATION, redirectUrl);
response.setStatusCode(HttpStatus.SEE_OTHER);
response.getHeaders().add("Content-Type", "text/plain;charset=UTF-8");
return response.setComplete();
}
return chain.filter(exchange);
}
}
...@@ -3,17 +3,22 @@ server: ...@@ -3,17 +3,22 @@ server:
spring: spring:
application: application:
name: gateway-server name: gateway-server
profiles:
active: test
cloud: cloud:
config: config:
discovery: discovery:
enabled: true enabled: true
service-id: config-center service-id: config-server
name: common name: common
label: dev label: dev
profiles: gateway:
active: test discovery:
thymeleaf: locator:
cache: false # 根据服务名转发
enabled: true
# 服务名一律转小写
lower-case-service-id: true
eureka: eureka:
instance: instance:
hostname: localhost hostname: localhost
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册