|
@@ -2,9 +2,8 @@ package com.lantone.filter;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.lantone.common.constant.AuthConstant;
|
|
import com.lantone.common.constant.AuthConstant;
|
|
-import com.nimbusds.jose.JWSObject;
|
|
|
|
-import org.slf4j.Logger;
|
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
|
|
|
+import com.lantone.common.util.SysUserUtils;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
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.core.Ordered;
|
|
import org.springframework.core.Ordered;
|
|
@@ -20,11 +19,10 @@ import java.text.ParseException;
|
|
* @author: rengb
|
|
* @author: rengb
|
|
* @time: 2021/1/5 18:27
|
|
* @time: 2021/1/5 18:27
|
|
*/
|
|
*/
|
|
|
|
+@Slf4j
|
|
@Component
|
|
@Component
|
|
public class AuthGlobalFilter implements GlobalFilter, Ordered {
|
|
public class AuthGlobalFilter implements GlobalFilter, Ordered {
|
|
|
|
|
|
- private static Logger LOGGER = LoggerFactory.getLogger(AuthGlobalFilter.class);
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
|
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
|
String token = exchange.getRequest().getHeaders().getFirst(AuthConstant.JWT_TOKEN_HEADER);
|
|
String token = exchange.getRequest().getHeaders().getFirst(AuthConstant.JWT_TOKEN_HEADER);
|
|
@@ -33,14 +31,10 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
//从token中解析用户信息并设置到Header中去
|
|
//从token中解析用户信息并设置到Header中去
|
|
- String realToken = token.replace(AuthConstant.JWT_TOKEN_PREFIX, "");
|
|
|
|
- JWSObject jwsObject = JWSObject.parse(realToken);
|
|
|
|
- String userStr = jwsObject.getPayload().toString();
|
|
|
|
- LOGGER.info("AuthGlobalFilter.filter() user:{}", userStr);
|
|
|
|
- ServerHttpRequest request = exchange.getRequest().mutate().header(AuthConstant.USER_TOKEN_HEADER, userStr).build();
|
|
|
|
|
|
+ ServerHttpRequest request = exchange.getRequest().mutate().header(AuthConstant.USER_TOKEN_HEADER, SysUserUtils.getUserStrByToken(token)).build();
|
|
exchange = exchange.mutate().request(request).build();
|
|
exchange = exchange.mutate().request(request).build();
|
|
} catch (ParseException e) {
|
|
} catch (ParseException e) {
|
|
- e.printStackTrace();
|
|
|
|
|
|
+ log.error(e.getMessage(), e);
|
|
}
|
|
}
|
|
return chain.filter(exchange);
|
|
return chain.filter(exchange);
|
|
}
|
|
}
|