yq 3 năm trước cách đây
mục cha
commit
b6ff2d8d79

+ 16 - 14
src/main/java/com/usky/dxtop/controller/web/system/SysLoginController.java

@@ -1,7 +1,5 @@
 package com.usky.dxtop.controller.web.system;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.dxtop.common.constant.Constants;
 import com.usky.dxtop.common.core.domain.ApiResult;
 import com.usky.dxtop.common.core.domain.model.LoginBody;
@@ -13,6 +11,7 @@ import com.usky.dxtop.framework.web.service.SysPermissionService;
 import com.usky.dxtop.framework.web.service.TokenService;
 import com.usky.dxtop.model.SysMenu;
 import com.usky.dxtop.model.SysUser;
+import com.usky.dxtop.service.util.CenterDecryptUtil;
 import com.usky.dxtop.service.ISysMenuService;
 import com.usky.dxtop.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,22 +60,25 @@ public class SysLoginController
     }
 
     /**
-     * 登录方法
-     *
-     * @param centerId 登录信息
-     * @return 结果
+     * 单点登录
+     * @param loginBody
+     * @return
      */
-    @GetMapping("/loginByCenterId")
-    public ApiResult getToken(@RequestParam String centerId)
+    @PostMapping("/loginByCenter")
+    public ApiResult getToken(@RequestBody LoginBody loginBody)
     {
+        try {
+            loginBody.setUsername(CenterDecryptUtil.decryptByPrivateKey(CenterDecryptUtil.KEY, loginBody.getUsername()));
+            loginBody.setPassword(CenterDecryptUtil.decryptByPrivateKey(CenterDecryptUtil.KEY, loginBody.getPassword()));
+        }catch (Exception e){
+            throw new CustomException("验证失败");
+        }
+        Map<String,Object> map = new HashMap<>();
         // 生成令牌
-        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(SysUser::getCenterUserId,centerId);
-        SysUser sysUser = sysUserService.getOne(queryWrapper);
-        Optional.ofNullable(sysUser).orElseThrow(() -> new CustomException("用户新不存在"));
-        String token = loginService.login(sysUser.getUserName(), sysUser.getPassword(), null,
+        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), null,
                 null,false);
-        return ApiResult.success(token);
+        map.put(Constants.TOKEN, token);
+        return ApiResult.success(map);
     }
 
     /**

+ 10 - 10
src/main/java/com/usky/dxtop/framework/config/SecurityConfig.java

@@ -102,7 +102,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/login", "/register", "/captchaImage","/top/notify","/dxtop/order/topScanPayApi","/loginApi",
                         "/dxtop/charge/page","/dxtop/dish/page","/wxLogin","/wxAccToken","/dxtop/order/callUnifiedPay",
                         "/dxtop/staff/one","/dxtop/staff/cardBalance","/dxtop/charge/cordPage","/dxtop/charge","/dxtop/dish",
-                        "/dxtop/staff","/offSendMessage","/offOpenId","/loginByCenterId"
+                        "/dxtop/staff","/offSendMessage","/offOpenId","/loginByCenter"
                         ).permitAll()
                 .antMatchers(
                         HttpMethod.GET,
@@ -139,17 +139,17 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
     public BCryptPasswordEncoder bCryptPasswordEncoder()
     {
 
-        return new BCryptPasswordEncoderNew();
+        return new BCryptPasswordEncoder();
     }
 
-    public class BCryptPasswordEncoderNew extends BCryptPasswordEncoder{
-        @Override
-        public boolean matches(CharSequence rawPassword, String encodedPassword) {
-            boolean matches = super.matches(rawPassword, encodedPassword);
-            return matches || rawPassword.equals(encodedPassword);
-        }
-
-    }
+//    public class BCryptPasswordEncoderNew extends BCryptPasswordEncoder{
+//        @Override
+//        public boolean matches(CharSequence rawPassword, String encodedPassword) {
+//            boolean matches = super.matches(rawPassword, encodedPassword);
+//            return matches || rawPassword.equals(encodedPassword);
+//        }
+//
+//    }
 
     /**
      * 身份认证接口

+ 6 - 0
src/main/java/com/usky/dxtop/model/Staff.java

@@ -163,5 +163,11 @@ public class Staff implements Serializable {
     @TableField(exist = false)
     private String username;
 
+    /**
+     * 密码
+     */
+    @TableField(exist = false)
+    private String osspassword;
+
 
 }

+ 8 - 2
src/main/java/com/usky/dxtop/service/job/CenterUserJob.java

@@ -14,6 +14,7 @@ import com.usky.dxtop.model.SysUser;
 import com.usky.dxtop.service.ISysDeptService;
 import com.usky.dxtop.service.ISysUserService;
 import com.usky.dxtop.service.api.SmApi;
+import com.usky.dxtop.service.util.CenterDecryptUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -21,7 +22,6 @@ import org.springframework.stereotype.Component;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
-import java.util.function.Function;
 
 @Component("centerUserJob")
 @Slf4j
@@ -118,7 +118,13 @@ public class CenterUserJob {
         SysUser sysUser = new SysUser();
         sysUser.setCenterUserId(staff.getId());
         sysUser.setUserName(staff.getUsername());
-        sysUser.setPassword(SecurityUtils.encryptPassword(staff.getUsername()));
+        String pwd = "";
+        try {
+            pwd = CenterDecryptUtil.decryptByPrivateKey(CenterDecryptUtil.KEY,staff.getOsspassword());
+        }catch (Exception e){
+
+        }
+        sysUser.setPassword(SecurityUtils.encryptPassword(pwd));
         sysUser.setPhonenumber(staff.getContacts());
         sysUser.setEmail(staff.getEmail());
         if (null != staff.getSex()){

+ 64 - 0
src/main/java/com/usky/dxtop/service/util/CenterDecryptUtil.java

@@ -0,0 +1,64 @@
+package com.usky.dxtop.service.util;
+
+import org.apache.commons.codec.binary.Base64;
+
+import javax.crypto.Cipher;
+import java.io.ByteArrayOutputStream;
+import java.security.KeyFactory;
+import java.security.PrivateKey;
+import java.security.spec.PKCS8EncodedKeySpec;
+
+public class CenterDecryptUtil {
+
+
+    public static final String KEY = "MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A==";
+
+    /**
+     * 私钥解密
+     *
+     * @param privateKeyText 私钥
+     * @param text 待解密的文本
+     * @return /
+     * @throws Exception /
+     */
+    public static String decryptByPrivateKey(String privateKeyText, String text) throws Exception {
+        PKCS8EncodedKeySpec pkcs8EncodedKeySpec5 = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyText));
+        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+        PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec5);
+        Cipher cipher = Cipher.getInstance("RSA");
+        cipher.init(Cipher.DECRYPT_MODE, privateKey);
+        byte[] result = doLongerCipherFinal(Cipher.DECRYPT_MODE, cipher, Base64.decodeBase64(text));
+        return new String(result);
+    }
+
+
+
+
+    private static byte[] doLongerCipherFinal(int opMode,Cipher cipher, byte[] source) throws Exception {
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        if (opMode == Cipher.DECRYPT_MODE) {
+            out.write(cipher.doFinal(source));
+        } else {
+            int offset = 0;
+            int totalSize = source.length;
+            while (totalSize - offset > 0) {
+                int size = Math.min(cipher.getOutputSize(0) - 11, totalSize - offset);
+                out.write(cipher.doFinal(source, offset, size));
+                offset += size;
+            }
+        }
+        out.close();
+        return out.toByteArray();
+    }
+
+    public static void main(String[] args) {
+        try {
+            String s = CenterDecryptUtil.decryptByPrivateKey(CenterDecryptUtil.KEY, "rYb2pz1H3Rv2u5EfCUHLXFON3E2SBqjrLB7FueYst1pYk59qnJYXDLKNLrq0zhp71tjwuKDvKda/2ZIfuhqYYA==");
+            String s1 = CenterDecryptUtil.decryptByPrivateKey(CenterDecryptUtil.KEY, "C3iuaHv9hrXKOFWobE+ng8qVBHPlbdzwcgLibYc+VP3l0TVVdl4leLcxEgcaKH/M5xaEFto4HsTyjFKVLh/APg==");
+            System.out.println(s);
+            System.out.println(s1);
+        }catch (Exception e){
+
+        }
+    }
+}

+ 2 - 1
src/main/resources/mapper/SysDeptMapper.xml

@@ -20,10 +20,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="createTime" column="create_time" />
 		<result property="updateBy"   column="update_by"   />
 		<result property="updateTime" column="update_time" />
+		<result property="centerDeptId" column="center_dept_id" />
 	</resultMap>
 	
 	<sql id="selectDeptVo">
-        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
+        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time,d.center_dept_id
         from sys_dept d
     </sql>
     

+ 3 - 2
src/main/resources/mapper/SysUserMapper.xml

@@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="updateBy"     column="update_by"    />
 		<result property="updateTime"   column="update_time"  />
 		<result property="remark"       column="remark"       />
+		<result property="centerUserId"  column="center_user_id"       />
 		<association property="dept"    column="dept_id" javaType="com.usky.dxtop.model.SysDept" resultMap="deptResult" />
 		<collection  property="roles"   javaType="java.util.List"        resultMap="RoleResult" />
 	</resultMap>
@@ -46,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	
 	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
+        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.center_user_id,
         d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
         from sys_user u
@@ -56,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     
     <select id="selectUserList" parameterType="com.usky.dxtop.model.SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,u.center_user_id from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
 		where u.del_flag = '0'
 		<if test="userName != null and userName != ''">

+ 1 - 1
src/test/java/com/usky/dxtop/SmApiTest.java

@@ -42,7 +42,7 @@ public class SmApiTest {
 
     @Test
     public void test1(){
-        centerUserJob.groupApi(null);
+        centerUserJob.personApi(null);
     }
 
     @Autowired