Преглед изворни кода

Merge branch 'wrdp' into 'develop'

Wrdp

See merge request o2oa/o2oa!3003
胡起 пре 5 година
родитељ
комит
914292184a

+ 58 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/MD5Tool.java

@@ -0,0 +1,58 @@
+package com.x.base.core.project.tools;
+import org.apache.commons.lang3.StringUtils;
+
+import java.security.NoSuchAlgorithmException;
+
+
+/**
+ * @author louguodong
+ *
+ */
+public class MD5Tool {
+
+    public static String getMD5(byte[] source) {
+        String s = null;
+        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };// 用来将字节转换成16进制表示的字符
+        try {
+            java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
+            md.update(source);
+            byte tmp[] = md.digest();// MD5 的计算结果是一个 128 位的长整数,
+            // 用字节表示就是 16 个字节
+            char str[] = new char[16 * 2];// 每个字节用 16 进制表示的话,使用两个字符, 所以表示成 16
+            // 进制需要 32 个字符
+            int k = 0;// 表示转换结果中对应的字符位置
+            for (int i = 0; i < 16; i++) {// 从第一个字节开始,对 MD5 的每一个字节// 转换成 16
+                // 进制字符的转换
+                byte byte0 = tmp[i];// 取第 i 个字节
+                str[k++] = hexDigits[byte0 >>> 4 & 0xf];// 取字节中高 4 位的数字转换,// >>>
+                // 为逻辑右移,将符号位一起右移
+                str[k++] = hexDigits[byte0 & 0xf];// 取字节中低 4 位的数字转换
+
+            }
+            s = new String(str);// 换后的结果转换为字符串
+
+        } catch (NoSuchAlgorithmException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return s;
+    }
+
+    public static String getMD5Str(String source) {
+        if (StringUtils.isNotEmpty(source)) {
+            return getMD5(source.getBytes());
+        } else {
+            return "";
+        }
+    }
+
+    /**
+     * @param args
+     */
+    public static void main(String[] args) {
+        // TODO Auto-generated method stub
+        String test = MD5Tool.getMD5("1qaz2wsx".getBytes());
+        System.out.println(test);
+    }
+
+}

+ 9 - 6
o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/jaxrs/authentication/ActionCaptchaLogin.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.authentication.jaxrs.authentication;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.x.base.core.project.tools.MD5Tool;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -78,11 +79,12 @@ class ActionCaptchaLogin extends BaseAction {
 				Person o = null;
 				// 处理同中文问题
 				if (personId.indexOf(",") > -1) {
-					String[] arrPersion = personId.split(",");
-					for (int i = 0; i < arrPersion.length; i++) {
-						personId = arrPersion[i];
+					String[] arrPerson = personId.split(",");
+					for (int i = 0; i < arrPerson.length; i++) {
+						personId = arrPerson[i];
 						o = emc.find(personId, Person.class);
-						if (StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())) {
+						if (StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())
+								|| StringUtils.equals(MD5Tool.getMD5Str(password), o.getPassword())) {
 							break;
 						}
 					}
@@ -97,7 +99,8 @@ class ActionCaptchaLogin extends BaseAction {
 					if (this.failureLocked(o)) {
 						throw new ExceptionFailureLocked(o.getName(), Config.person().getFailureInterval());
 					} else {
-						if (!StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())) {
+						if (!StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())
+								&& !StringUtils.equals(MD5Tool.getMD5Str(password), o.getPassword())) {
 							emc.beginTransaction(Person.class);
 							this.failure(o);
 							emc.commit();
@@ -231,4 +234,4 @@ class ActionCaptchaLogin extends BaseAction {
 		private static final long serialVersionUID = 4940814657548190978L;
 	}
 
-}
+}

+ 4 - 2
o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/jaxrs/authentication/ActionLogin.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.authentication.jaxrs.authentication;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.x.base.core.project.tools.MD5Tool;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -58,7 +59,8 @@ class ActionLogin extends BaseAction {
 				if (BooleanUtils.isTrue(Config.person().getSuperPermission())
 						&& StringUtils.equals(Config.token().getPassword(), password)) {
 					logger.warn("user: {} use superPermission.", credential);
-				} else if (!StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())) {
+				} else if (!StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())
+						&& !StringUtils.equals(MD5Tool.getMD5Str(password), o.getPassword())) {
 					/* 普通用户认证密码 */
 					throw new ExceptionPersonNotExistOrInvalidPassword();
 				}
@@ -101,4 +103,4 @@ class ActionLogin extends BaseAction {
 		private static final long serialVersionUID = -5397186305200946501L;
 
 	}
-}
+}

+ 20 - 0
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListIdentityWithUnitWithNameObject.java

@@ -122,9 +122,11 @@ class ActionListIdentityWithUnitWithNameObject extends BaseAction {
 
 	public static class Wo extends com.x.base.core.project.organization.Identity {
 
+		private Integer unitOrder;
 		private String matchUnitName;
 		private String matchUnitLevelName;
 		private Integer matchUnitLevel;
+		private Integer matchUnitOrder;
 		private String matchUnitDutyName;
 		private String matchUnitDutyId;
 		private Integer matchUnitDutyNumber;
@@ -176,6 +178,22 @@ class ActionListIdentityWithUnitWithNameObject extends BaseAction {
 		public void setMatchUnitDutyNumber(Integer matchUnitDutyNumber) {
 			this.matchUnitDutyNumber = matchUnitDutyNumber;
 		}
+
+		public Integer getUnitOrder() {
+			return unitOrder;
+		}
+
+		public void setUnitOrder(Integer unitOrder) {
+			this.unitOrder = unitOrder;
+		}
+
+		public Integer getMatchUnitOrder() {
+			return matchUnitOrder;
+		}
+
+		public void setMatchUnitOrder(Integer matchUnitOrder) {
+			this.matchUnitOrder = matchUnitOrder;
+		}
 	}
 
 	private List<Wo> list(Business business, List<String> names, List<String> units, Boolean recursiveUnit) throws Exception {
@@ -246,9 +264,11 @@ class ActionListIdentityWithUnitWithNameObject extends BaseAction {
 			wo.setMatchUnitLevelName(matchUnit.getLevelName());
 			wo.setMatchUnitName(matchUnit.getName());
 			wo.setMatchUnitLevel(matchUnit.getLevel());
+			wo.setMatchUnitOrder(matchUnit.getOrderNumber());
 		}
 		if (null != unit) {
 			wo.setUnit(unit.getDistinguishedName());
+			wo.setUnitOrder(unit.getOrderNumber());
 		}else{
 			wo.setUnit(identity.getUnit());
 		}

+ 3 - 1
o2web/jsdoc.conf.json

@@ -42,7 +42,9 @@
         }
     },
     "metadata": {
-        "title": "O2OA前台API" //最终生成的文档中标题
+        "title": "O2OA前台API", //最终生成的文档中标题
+        "title_prefix" : "O2OA WebAPI", //html title标题前缀
+        "title_suffix" : " | O2OA开发平台" //标题后缀
     },
     "o2" : {
         "actionOutPath" : "./o2server/{actionRoot}/src/main/webapp/describe/jsdoc/{actionName}.json",

+ 1 - 1
o2web/source/o2_core/o2.js

@@ -77,7 +77,7 @@ if (!window.Promise){
     }
     this.o2 = window.o2 || {};
     this.o2.version = {
-        "v": "5.1.1",
+        "v": "5.4.1",
         "build": "2020.06.12",
         "info": "O2OA 活力办公 创意无限. Copyright © 2020, o2oa.net O2 Team All rights reserved."
     };