فهرست منبع

Web端登录逻辑 新增 用行方账号密码 登录逻辑

zhulu 1 سال پیش
والد
کامیت
463a23f2ee

+ 15 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/model/LoginUser.java

@@ -74,6 +74,11 @@ public class LoginUser implements Serializable
      */
     private SysUser sysUser;
 
+    /**
+     * 来源 0:系统添加.1:fjnx同步
+     */
+    private Integer source;
+
 
     public String getPlatformType() {
         return platformType;
@@ -193,4 +198,14 @@ public class LoginUser implements Serializable
     {
         this.sysUser = sysUser;
     }
+
+    public Integer getSource()
+    {
+        return source;
+    }
+
+    public void setSource(Integer source)
+    {
+        this.source = source;
+    }
 }

+ 13 - 8
soc-auth/pom.xml

@@ -58,15 +58,20 @@
             <artifactId>soc-common-swagger</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.apache.logging.log4j</groupId>-->
+            <!--<artifactId>log4j-core</artifactId>-->
+            <!--<version>2.20.0</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>org.apache.logging.log4j</groupId>-->
+            <!--<artifactId>log4j-api</artifactId>-->
+            <!--<version>2.20.0</version>-->
+        <!--</dependency>-->
         <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>2.20.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <version>2.20.0</version>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.16</version>
         </dependency>
         <dependency>
             <groupId>com.thoughtworks.xstream</groupId>

+ 6 - 2
soc-auth/src/main/java/com/xunmei/auth/service/FJNXLoginService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
+import com.alibaba.fastjson2.JSON;
 import com.union.api.TUnionTransInfo;
 import com.union.api.UnionEsscAPI;
 import com.xunmei.auth.form.LoginBody;
@@ -201,6 +202,7 @@ public class FJNXLoginService{
         ipList.add(passIp);
         portList.add(passPort);
 
+        logger.info("UnionEsscAPI 对象初始化参数:"+"ipList" + passIp + ", portList:" + passPort + ", timeout:" + 5 + ", sysID:" + appCode + ", appID:" + appCode + ", tlvOrXmlflag:");
         //对登录用户的密码进行加密
         UnionEsscAPI shortApi = new UnionEsscAPI(ipList,portList,5,appCode,appCode,"");
         String pass = StringUtil.toHexString(login.getPassword().getBytes());
@@ -211,7 +213,9 @@ public class FJNXLoginService{
         }
 
         int isSuccess =  transInfo.getIsSuccess();
+        logger.info("加密结果:{}" , JSON.toJSON(transInfo).toString() );
         if(ObjectUtil.notEqual(transInfo.getResponseCode(),0) || ObjectUtil.notEqual(isSuccess,1)){
+
             logger.error("密码加密失败!{}",transInfo.getResponseRemark());
             return null;
         }
@@ -228,10 +232,10 @@ public class FJNXLoginService{
         object.accumulate("loginName",login.getUsername());
         object.accumulate("pass",transInfo.getReturnBody().getData());
         object.accumulate("type",1);
-        object.accumulate("systemCode",1);
+        object.accumulate("systemCode",systemCode);
         object.accumulate("passwordType",1);
 
-        String loginContent = HttpRequest.get(loginUrl)
+        String loginContent = HttpRequest.post(loginUrl)
                 .header("Content-Type","application/json")
                 .contentType("application/json")
                 .charset("utf-8")

+ 32 - 1
soc-auth/src/main/java/com/xunmei/auth/service/SysLoginService.java

@@ -1,5 +1,7 @@
 package com.xunmei.auth.service;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.auth.form.LoginBody;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -11,6 +13,7 @@ import com.xunmei.common.core.text.Convert;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.utils.ip.IpUtils;
 import com.xunmei.common.redis.utils.RedisUtils;
+import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.api.model.LoginUser;
@@ -33,6 +36,11 @@ public class SysLoginService{
     @Autowired
     private SysRecordLogService recordLogService;
 
+    @Autowired
+    private FJNXLoginService fjnxLoginService;
+
+
+
     /**
      * 登录
      */
@@ -83,7 +91,30 @@ public class SysLoginService{
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员", platformType);
             throw new ServiceException("对不起,您的账号:" + username + " 已停用");
         }
-        passwordService.validate(user, password, platformType);
+        // 如果人员是从统一门户同步过来的人, 先尝试走行方的账号密码验证
+        if(ObjectUtil.equal(userInfo.getSource(),1))
+        {
+            try{
+                LoginBody login=new LoginBody();
+                login.setUsername(username);
+                login.setPassword(SecurityUtils.decryptSm4(password));
+                //登录统一运营
+                String token = fjnxLoginService.webLoginByPass(login);
+                // 如果统一门户验证失败, 再走本系统默认密码验证
+                if(StringUtils.isEmpty(token)){
+                    passwordService.validate(user, password, platformType);
+                }
+            }
+            // 如果统一门户验证失败, 再走本系统默认密码验证
+            catch (Exception e){
+//                e.printStackTrace();
+                passwordService.validate(user, password, platformType);
+            }
+        }
+        else
+        {
+            passwordService.validate(user, password, platformType);
+        }
         recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功", platformType);
         return userInfo;
     }

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -158,6 +158,7 @@ public class SysUserController extends BaseController {
         LoginUser sysUserVo = new LoginUser();
         sysUserVo.setOrgId(sysUser.getOrgId());
         sysUserVo.setName(sysUser.getName());
+        sysUserVo.setSource(sysUser.getSource());
         sysUserVo.setSysUser(sysUser);
         sysUserVo.setRoles(roles);
         sysUserVo.setPermissions(permissions);