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 4d8a2dc..7d99859 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
@@ -13,7 +13,7 @@
 
 import org.apache.commons.lang3.StringUtils;
 
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSON;
 import com.supwisdom.institute.backend.common.core.transmit.user.User;
 import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
 
@@ -32,11 +32,14 @@
     HttpServletRequest request = (HttpServletRequest) servletRequest;
     
     String headerValue = request.getHeader(UserContext.KEY_USER_IN_HTTP_HEADER);
+    log.debug("Header {} is: {}", UserContext.KEY_USER_IN_HTTP_HEADER, headerValue);
     if (StringUtils.isNotBlank(headerValue)) {
       try {
         String jsonUser = URLDecoder.decode(headerValue,"UTF-8");
+        log.debug("jsonUser is: {}", jsonUser);
         
-        User user = JSONObject.parseObject(jsonUser, User.class);
+        User user = JSON.parseObject(jsonUser, User.class);
+        log.debug("User is: {}", user);
         
         UserContext.setUser(user);
       } catch (Exception e) {
diff --git a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/user/User.java b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/user/User.java
index 3d34bc4..4b24d52 100644
--- a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/user/User.java
+++ b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/transmit/user/User.java
@@ -3,9 +3,11 @@
 import java.util.List;
 import java.util.Map;
 
-import lombok.Value;
+import lombok.AllArgsConstructor;
+import lombok.Data;
 
-@Value
+@Data
+@AllArgsConstructor
 public class User {
   
   private String username;
