Browse Source

机构版-迭代-导出token问题

xiaof 3 years ago
parent
commit
259cbff411

+ 4 - 3
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/LoginInterceptor.java

@@ -7,7 +7,6 @@ import cn.com.qmth.stmms.ms.core.domain.user.AbstractUser;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
-import com.alibaba.fastjson.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +16,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.net.URLDecoder;
 import java.util.Objects;
 
 public class LoginInterceptor extends HandlerInterceptorAdapter {
@@ -50,15 +50,16 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
             return false;
         }
 
+        authorization = URLDecoder.decode(authorization, "UTF-8");
+        token = URLDecoder.decode(token, "UTF-8");
+
         String tokenDec = AesUtil.decoder(token, "token", null);
         String[] strs = tokenDec.split("#");
         String loginName = strs[1];
-        logger.info("tokenDec:{},strs:{},loginName:{}", tokenDec, strs, loginName);
         if (loginConfig.adminLoginConfig().getLoginName().equals(loginName)) {
             return true;
         }
         AbstractUser user = markUserRepo.findOne(Long.valueOf(userId));
-        logger.info("user:{}", JSONObject.toJSONString(user));
         if (Objects.equals(Role.COLLECTOR, ((MarkUser) user).getRole())) {
             response.sendError(HttpStatus.UNAUTHORIZED.value(), "该账户只能在采集端登录");
             return false;

+ 5 - 1
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/api/AuthApi.java

@@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.Base64;
 import java.util.List;
 import java.util.Objects;
 
@@ -82,7 +85,8 @@ public class AuthApi {
         }
 
         String token = System.currentTimeMillis() + "#" + domain.getLoginName() + "#" + domain.getId();
-        token = AesUtil.encoder(token, "token", null);
+        String tokenAes = AesUtil.encoder(token, "token", null);
+        token = URLEncoder.encode(tokenAes, "UTF-8");
         cacheService.saveTokenCache(domain.getId().toString(), token);
         domain.setToken(token);
         return domain;