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);
       }
     }
     
