|
@@ -3,9 +3,12 @@ package com.inspur.smsb.gateway.filter;
|
|
|
import com.google.common.base.Strings;
|
|
import com.google.common.base.Strings;
|
|
|
import com.nimbusds.jose.JWSObject;
|
|
import com.nimbusds.jose.JWSObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
|
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
|
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
|
|
|
+import org.springframework.http.server.reactive.ServerHttpResponse;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.server.ServerWebExchange;
|
|
import org.springframework.web.server.ServerWebExchange;
|
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.publisher.Mono;
|
|
@@ -20,6 +23,10 @@ import java.text.ParseException;
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@Component
|
|
@Component
|
|
|
public class WebFluxUserRequestInfoFilter implements GlobalFilter {
|
|
public class WebFluxUserRequestInfoFilter implements GlobalFilter {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private AuthorizationClient authorizationClient;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
|
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
|
|
try {
|
|
try {
|
|
@@ -28,6 +35,11 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
|
|
|
return chain.filter(exchange);
|
|
return chain.filter(exchange);
|
|
|
}
|
|
}
|
|
|
String realToken = token.replace("Bearer ", "");
|
|
String realToken = token.replace("Bearer ", "");
|
|
|
|
|
+ ServerHttpResponse response = exchange.getResponse();
|
|
|
|
|
+ if(authorizationClient.verifyToken(realToken)){
|
|
|
|
|
+ response.setStatusCode(HttpStatus.UNAUTHORIZED);
|
|
|
|
|
+ return response.setComplete();
|
|
|
|
|
+ }
|
|
|
JWSObject jwsObject = JWSObject.parse(realToken);
|
|
JWSObject jwsObject = JWSObject.parse(realToken);
|
|
|
|
|
|
|
|
ServerHttpRequest request = exchange.getRequest()
|
|
ServerHttpRequest request = exchange.getRequest()
|