fix: 优化SimpleUserTransmit,数据编码改为base64
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AdminAccountRemoteFallbackFactory.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AdminAccountRemoteFallbackFactory.java
rename to bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AdminAccountRemoteFeignClient.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java
similarity index 100%
rename from bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AdminAccountRemoteFeignClient.java
rename to bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java
diff --git a/common/core/pom.xml b/common/core/pom.xml
index dcfe763..ad793bd 100644
--- a/common/core/pom.xml
+++ b/common/core/pom.xml
@@ -55,6 +55,11 @@
</dependency>
<dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
diff --git a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/feign/SimpleUserTransmitRequestInterceptor.java b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/feign/SimpleUserTransmitRequestInterceptor.java
index be002db..903219f 100644
--- a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/feign/SimpleUserTransmitRequestInterceptor.java
+++ b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/feign/SimpleUserTransmitRequestInterceptor.java
@@ -1,9 +1,9 @@
package com.supwisdom.institute.backend.common.core.transmit.feign;
-import java.net.URLDecoder;
-
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+
import com.alibaba.fastjson.JSONObject;
import com.supwisdom.institute.backend.common.core.transmit.user.User;
import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
@@ -20,10 +20,14 @@
if (user != null) {
try {
String jsonUser = JSONObject.toJSONString(user);
- String headerValue = new String(URLDecoder.decode(jsonUser,"UTF-8"));
+
+ //String headerValue = new String(URLDecoder.decode(jsonUser,"UTF-8"));
+ String headerValue = Base64.encodeBase64String(jsonUser.getBytes("UTF-8"));
+
template.header(UserContext.KEY_USER_IN_HTTP_HEADER, headerValue);
+ log.debug("User set to feign header: ok");
} catch (Exception e) {
- log.warn("User set error", e);
+ log.warn("User set to feign header: error", e);
}
}
}
diff --git a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/filter/SimpleUserTransmitFilter.java b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/filter/SimpleUserTransmitFilter.java
index 7d99859..644e4f6 100644
--- a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/filter/SimpleUserTransmitFilter.java
+++ b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/filter/SimpleUserTransmitFilter.java
@@ -1,7 +1,6 @@
package com.supwisdom.institute.backend.common.core.transmit.filter;
import java.io.IOException;
-import java.net.URLDecoder;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@@ -11,6 +10,7 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSON;
@@ -35,15 +35,17 @@
log.debug("Header {} is: {}", UserContext.KEY_USER_IN_HTTP_HEADER, headerValue);
if (StringUtils.isNotBlank(headerValue)) {
try {
- String jsonUser = URLDecoder.decode(headerValue,"UTF-8");
+ //String jsonUser = URLDecoder.decode(headerValue,"UTF-8");
+ String jsonUser = new String(Base64.decodeBase64(headerValue), "UTF-8");
log.debug("jsonUser is: {}", jsonUser);
User user = JSON.parseObject(jsonUser, User.class);
log.debug("User is: {}", user);
UserContext.setUser(user);
+ log.debug("User get from header: ok");
} catch (Exception e) {
- log.warn("User get error", e);
+ log.warn("User get from header: error", e);
}
}
diff --git a/gateway/pom.xml b/gateway/pom.xml
index 7f39a11..86dfd32 100644
--- a/gateway/pom.xml
+++ b/gateway/pom.xml
@@ -112,7 +112,11 @@
<artifactId>sw-backend-common-framework</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
index 9b64970..c0e4910 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
@@ -1,9 +1,8 @@
package com.supwisdom.institute.backend.gateway.filter;
-import java.net.URLDecoder;
-
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
@@ -38,20 +37,24 @@
.map(SecurityContext::getAuthentication)
.map(Authentication::getPrincipal)
.cast(InfrasUser.class)
- .map(myUser -> {
+ .map(infrasUser -> {
try {
- User user = new User(myUser.getUsername(), myUser.getRoles(), myUser.getAttributes());
+ User user = new User(infrasUser.getUsername(), infrasUser.getRoles(), infrasUser.getAttributes());
String jsonUser = JSONObject.toJSONString(user);
- log.info(jsonUser);
- String headerValue = new String(URLDecoder.decode(jsonUser,"UTF-8"));
+ log.debug(jsonUser);
+
+ //String headerValue = new String(URLDecoder.decode(jsonUser,"UTF-8"));
+ String headerValue = Base64.encodeBase64String(jsonUser.getBytes("UTF-8"));
+ log.debug(jsonUser);
+
ServerHttpRequest request = exchange.getRequest().mutate()
.header(UserContext.KEY_USER_IN_HTTP_HEADER, headerValue)
.build();
- log.debug("User set ok");
+ log.debug("User set to gateway header: ok");
return exchange.mutate().request(request).build();
} catch (Exception e) {
- log.warn("User set error", e);
+ log.warn("User set to gateway header: error", e);
}
return exchange;
})