Prechádzať zdrojové kódy

修复,角色查看快速构建表信息

fangq 4 rokov pred
rodič
commit
7d7b8632c1

+ 1 - 0
src/main/java/org/springblade/bank/autodata/controller/AutoDataController.java

@@ -98,6 +98,7 @@ public class AutoDataController extends BladeController {
 		AutoStruct autoStruct = autoStructService.getById(autoData.getTableId());
 		//多個角色問題
 		String[] userRoles = user.getRoleId().split(",");
+		autoData.setUserRoleList(userRoles);
 		boolean isManageRole = false;
 		for (int i = 0; i < userRoles.length; i++) {
 			String roleId = userRoles[i];

+ 6 - 2
src/main/java/org/springblade/bank/autodata/mapper/AutoDataMapper.xml

@@ -47,12 +47,16 @@
 
 
     <select id="selectAutoDataPage" resultMap="autoDataResultMap">
-        select td.* from zh_auto_data td
-        where td.is_deleted = 0 and td.table_id = #{autoData.tableId}
+        select td.* from zh_auto_data td, zh_auto_struct ts
+        where td.is_deleted = 0 and td.table_id = #{autoData.tableId} and td.table_id = ts.id
 
         <if test="autoData!=null">
             <if test="autoData.isManageRole != true">
                 and td.create_dept = '${autoData.currentDeptId}'
+                and
+                <foreach item="roleId" collection="autoData.userRoleList" separator=" or " open="(" close=")" index="index">
+                    ts.role_id like '%${roleId}%'
+                </foreach>
             </if>
             <if test="autoData.params4!=null">
                 AND td.params4 like '${autoData.params4}%'

+ 4 - 0
src/main/java/org/springblade/bank/autodata/vo/AutoDataVO.java

@@ -21,6 +21,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 
+import java.util.List;
+
 /**
  * 视图实体类
  *
@@ -38,4 +40,6 @@ public class AutoDataVO extends AutoData {
 
 	private String createUserName;
 
+	private String[] userRoleList;
+
 }

+ 42 - 0
src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -16,8 +16,12 @@
  */
 package org.springblade.common.utils;
 
+import cn.hutool.core.codec.Base64;
 import org.springblade.core.tool.utils.DateUtil;
 
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -151,5 +155,43 @@ public class CommonUtil {
 		return calendar.get(Calendar.DAY_OF_MONTH) == calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
 	}
 
+	/**
+	 * 解密方法
+	 * @param data 要解密的数据
+	 * @param key  解密key
+	 * @param iv 解密iv
+	 * @return 解密的结果
+	 * @throws Exception
+	 */
+	private static String desEncryptByAes(String data, String key, String iv) {
+		try {
+			byte[] encrypted1 = new Base64().decode(data);
+
+			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+			cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
+
+			byte[] original = cipher.doFinal(encrypted1);
+			String originalString = new String(original);
+			return originalString.trim();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	public static String myAesDecrypt(String data){
+		String key = "cyzh20211126java";
+		String iv = "cyzh20211126java";
+		try {
+			return desEncryptByAes(data, key, iv);
+		}catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+
+	}
 
 }

+ 14 - 3
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.auth.endpoint;
 
+import cn.hutool.core.codec.Base64;
 import cn.hutool.crypto.digest.DigestUtil;
 import com.github.xiaoymin.knife4j.annotations.ApiSort;
 import com.wf.captcha.SpecCaptcha;
@@ -24,6 +25,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.cache.CacheNames;
+import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.jwt.JwtUtil;
 import org.springblade.core.jwt.props.JwtProperties;
@@ -35,6 +37,7 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.AesUtil;
 import org.springblade.core.tool.utils.DesUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.WebUtil;
@@ -51,6 +54,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletResponse;
 import java.time.Duration;
 import java.util.UUID;
@@ -95,8 +101,14 @@ public class BladeTokenEndPoint {
 		if (username != null && password != null){
 
 			boolean isLdapuser = userService.isLdapUserByAccount(username);
-			// cyzh2020 对应前端加密的key
-			String decryptFormHex = DesUtil.decryptFormHex(password, "cyzh2020");
+			String decryptFormHex = null;
+//			String decryptFormHex = DesUtil.decryptFormHex(password, "cyzh2020");
+			try {
+				decryptFormHex = CommonUtil.myAesDecrypt(password);
+			}catch (Exception e){
+				e.printStackTrace();
+			}
+
 			if (isLdapuser){
 				// 该用户为ldap类型
 				if (ldapOpen != null && "true".equals(ldapOpen)){
@@ -132,7 +144,6 @@ public class BladeTokenEndPoint {
 		return TokenUtil.createAuthInfo(userInfo);
 	}
 
-
 	@GetMapping("/oauth/logout")
 	@ApiOperation(value = "退出登录")
 	public Kv logout() {