Browse Source

fix: 从token获取租户属性放到请求头中

sunyue 2 years ago
parent
commit
9d73149f62

+ 4 - 0
src/main/java/com/inspur/smsb/gateway/filter/WebFluxUserRequestInfoFilter.java

@@ -91,10 +91,14 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
                     //just skip this adapter
                     return chain.filter(exchange);
                 }
+                //租户转换类型
+                List<String> tenantMap = (List<String>) jwsObject.getPayload().toJSONObject().get("tenant");
+                String tenant = tenantMap.isEmpty()? "unknown" : tenantMap.get(0);
                 ServerHttpRequest request = exchange.getRequest()
                     .mutate()
                     .header("userId", String.valueOf(jwsObject.getPayload().toJSONObject().get("sub")))
                     .header("userName", String.valueOf(jwsObject.getPayload().toJSONObject().get("preferred_username")))
+                    .header("tenant", String.valueOf(tenant))
                     .build();
                 // 把新的 exchange 放回到过滤链
                 return chain.filter(exchange.mutate().request(request).build());