zhourui 5 лет назад
Родитель
Сommit
f6202ba270

+ 2 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/container/factory/PersistenceXmlHelper.java

@@ -11,6 +11,7 @@ import com.x.base.core.entity.JpaObject;
 import com.x.base.core.entity.tools.JpaObjectTools;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.Node;
+import com.x.base.core.project.tools.Crypto;
 import com.x.base.core.project.tools.ListTools;
 
 import org.apache.commons.io.FileUtils;
@@ -62,7 +63,7 @@ public class PersistenceXmlHelper {
 			throw new Exception("registContainerEntity error.className:" + ListTools.toStringJoin(classNames), e);
 		}
 	}
-	
+
 	public static void writeForDdl(String path) throws Exception {
 		try {
 			Document document = DocumentHelper.createDocument();

+ 1 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/StorageServer.java

@@ -8,6 +8,7 @@ import org.apache.commons.lang3.StringUtils;
 import com.x.base.core.entity.StorageProtocol;
 import com.x.base.core.entity.StorageType;
 import com.x.base.core.project.annotation.FieldDescribe;
+import com.x.base.core.project.tools.Crypto;
 import com.x.base.core.project.tools.ListTools;
 
 public class StorageServer extends ConfigObject {

+ 22 - 9
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Token.java

@@ -9,6 +9,9 @@ import java.util.Map;
 import java.util.Objects;
 
 import com.x.base.core.project.tools.BaseTools;
+import com.x.base.core.project.tools.Crypto;
+
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -31,6 +34,11 @@ public class Token extends ConfigObject {
 	public static final String defaultSslKeyStorePassword = "123456";
 	public static final String defaultSslKeyManagerPassword = "123456";
 
+	// 此对象临时计算无需存储
+	private transient String _cipher = "";
+	// 此对象临时计算无需存储
+	private transient String _password = "";
+
 	public static Token defaultInstance() {
 		Token o = new Token();
 		return o;
@@ -45,7 +53,7 @@ public class Token extends ConfigObject {
 		this.initialManagerDistinguishedName = defaultInitialManagerDistinguishedName;
 	}
 
-	/** 加密用的key,用于加密口令 */
+	// 加密用的key,用于加密口令
 	@FieldDescribe("加密用口令的密钥,修改后会导致用户口令验证失败.")
 	private String key;
 
@@ -73,7 +81,7 @@ public class Token extends ConfigObject {
 	@FieldDescribe("作为客户端单点登录配置")
 	private List<OauthClient> oauthClients = new ArrayList<>();
 
-	/* 前面的代码是 key+surfix 结果是nullo2platform */
+	// 前面的代码是 key+surfix 结果是nullo2platform
 	public String getKey() {
 		String val = Objects.toString(key, "") + surfix;
 		return StringUtils.substring(val, 0, 8);
@@ -87,12 +95,19 @@ public class Token extends ConfigObject {
 		}
 	}
 
-	public String getCipher() {
-		return this.getPassword() + surfix;
+	public String getCipher() throws Exception {
+		if (StringUtils.isEmpty(this._cipher)) {
+			this._cipher = DigestUtils.md5Hex(this.getPassword());
+		}
+		return this._cipher;
+		// return this.getPassword() + surfix;
 	}
 
-	public String getPassword() {
-		return StringUtils.isEmpty(this.password) ? initPassword : this.password;
+	public String getPassword() throws Exception {
+		if (StringUtils.isEmpty(this._password)) {
+			this._password = StringUtils.isEmpty(this.password) ? initPassword : Crypto.plainText(this.password);
+		}
+		return this._password;
 	}
 
 	public void setPassword(String password) {
@@ -178,7 +193,7 @@ public class Token extends ConfigObject {
 	public void save() throws Exception {
 		File file = new File(Config.base(), Config.PATH_CONFIG_TOKEN);
 		FileUtils.write(file, XGsonBuilder.toJson(this), DefaultCharset.charset);
-        BaseTools.executeSyncFile(Config.PATH_CONFIG_TOKEN);
+		BaseTools.executeSyncFile(Config.PATH_CONFIG_TOKEN);
 	}
 
 	public boolean isInitialManager(String name) {
@@ -309,8 +324,6 @@ public class Token extends ConfigObject {
 			this.roleList = roleList;
 		}
 
- 
-
 		public String getUnique() {
 			return unique;
 		}

+ 1 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/Crypto.java

@@ -126,7 +126,7 @@ public class Crypto {
 	public static final String TEST_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWcVZIS57VeOUzi8c01WKvwJK9uRe6hrGTUYmF6J/pI6/UvCbdBWCoErbzsBZOElOH8Sqal3vsNMVLjPYClfoDyYDaUlakP3ldfnXJzAFJVVubF53KadG+fwnh9ZMvxdh7VXVqRL3IQBDwGgzX4rmSK+qkUJjc3OkrNJPB7LLD8QIDAQAB";
 	public static final String TEST_PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJZxVkhLntV45TOLxzTVYq/Akr25F7qGsZNRiYXon+kjr9S8Jt0FYKgStvOwFk4SU4fxKpqXe+w0xUuM9gKV+gPJgNpSVqQ/eV1+dcnMAUlVW5sXncpp0b5/CeH1ky/F2HtVdWpEvchAEPAaDNfiuZIr6qRQmNzc6Ss0k8HsssPxAgMBAAECgYAWtRy05NUgm5Lc6Og0jVDL/mEnydxPBy2ectwzHh2k7wIHNi8XhUxFki2TMqzrM9Dv3/LySpMl4AE3mhs34LNPy6F+MwyF5X7j+2Y6MflJyeb9HNyT++viysQneoOEiOk3ghxF2/GPjpiEF79wSp+1YKTxRAyq7ypV3t35fGOOEQJBANLDPWl8b5c3lrcz/dTamMjHbVamEyX43yzQOphzkhYsz4pruATzTxU+z8/zPdEqHcWWV39CP3xu3EYNcAhxJW8CQQC2u7PF5Xb1xYRCsmIPssFxil64vvdUadSxl7GLAgjQ9ULyYWB24KObCEzLnPcT8Pf2Q0YQOixxa/78FuzmgbyfAkA7ZFFV/H7lugB6t+f7p24OhkRFep9CwBMD6dnZRBgSr6X8d8ZvfrD2Z7DgBMeSva+OEoOtlNmXExZ3lynO9zN5AkAVczEmIMp3DSl6XtAuAZC9kD2QODJ2QToLYsAfjiyUwsWKCC43piTuVOoW2KUUPSwOR1VZIEsJQWEcHGDQqhgHAkAeZ7a6dVRZFdBwKA0ADjYCufAW2cIYiVDQBJpgB+kiLQflusNOCBK0FT3lg8BdUSy2D253Ih6l3lbaM/4M7DFQ";
 
-	public static String plainTextPassword(String text) throws Exception {
+	public static String plainText(String text) throws Exception {
 		if (StringUtils.isEmpty(text)) {
 			return text;
 		}

+ 2 - 2
o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java

@@ -98,7 +98,7 @@ public class ResourceFactory {
 			dataSource.setDriverClass(ds.getDriverClassName());
 			dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(ds.getUrl()));
 			dataSource.setUser(ds.getUsername());
-			dataSource.setPassword(Crypto.plainTextPassword(ds.getPassword()));
+			dataSource.setPassword(ds.getPassword());
 			dataSource.setMaxPoolSize(ds.getMaxTotal());
 			dataSource.setMinPoolSize(ds.getMaxIdle());
 			// 增加校验
@@ -131,7 +131,7 @@ public class ResourceFactory {
 			dataSource.setDriverClass(SlicePropertiesBuilder.driver_h2);
 			dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(url));
 			dataSource.setUser("sa");
-			dataSource.setPassword(Crypto.plainTextPassword(Config.token().getPassword()));
+			dataSource.setPassword(Config.token().getPassword());
 			dataSource.setMaxPoolSize(entry.getValue().getMaxTotal());
 			dataSource.setMinPoolSize(entry.getValue().getMaxIdle());
 			dataSource.setAcquireIncrement(2);

+ 1 - 1
o2server/x_console/src/main/java/com/x/server/console/action/Decrypt.java

@@ -9,7 +9,7 @@ public class Decrypt {
 	private static Logger logger = LoggerFactory.getLogger(Decrypt.class);
 
 	public boolean execute(String text) throws Exception {
-		logger.print("decrypt text:{}", Crypto.plainTextPassword(text));
+		logger.print("decrypt text:{}", Crypto.plainText(text));
 		return true;
 	}
 

+ 1 - 1
o2server/x_console/src/main/java/com/x/server/console/server/data/DataServerTools.java

@@ -20,7 +20,7 @@ public class DataServerTools {
 		FileUtils.forceMkdir(dataBaseDir);
 		Server tcpServer = null;
 		Server webServer = null;
-		String password = Crypto.plainTextPassword(Config.token().getPassword());
+		String password = Config.token().getPassword();
 		String[] tcps = new String[9];
 		tcps[0] = "-tcp";
 		tcps[1] = "-tcpAllowOthers";

+ 1 - 28
o2server/x_console/src/main/java/com/x/server/console/server/storage/StorageServerTools.java

@@ -24,6 +24,7 @@ import com.x.base.core.project.config.StorageServer;
 import com.x.base.core.project.config.StorageServer.Account;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.Crypto;
 
 public class StorageServerTools {
 
@@ -82,11 +83,6 @@ public class StorageServerTools {
 	}
 
 	private static UserManager calculateUserManager(List<Account> list) throws Exception {
-		// if (ListTools.isNotEmpty(list)) {
-		// return concreteUserManager(list);
-		// } else {
-		// return concreteDefaultUserManager();
-		// }
 		return concreteUserManager(list);
 	}
 
@@ -116,27 +112,4 @@ public class StorageServerTools {
 		return userManager;
 	}
 
-	// private static UserManager concreteDefaultUserManager() throws Exception
-	// {
-	// List<BaseUser> users = new ArrayList<>();
-	// for (StorageType o : StorageType.values()) {
-	// BaseUser user = new BaseUser();
-	// user.setEnabled(true);
-	// user.setName(o.toString());
-	// user.setPassword(Config.password());
-	// File file = new File(Config.base(), "local/repository/storage/" +
-	// o.toString());
-	// FileUtils.forceMkdir(file);
-	// user.setHomeDirectory(file.getAbsolutePath());
-	// user.setMaxIdleTime(0);
-	// List<Authority> authorities = new ArrayList<Authority>();
-	// authorities.add(new WritePermission());
-	// authorities.add(new ConcurrentLoginPermission(0, 0));
-	// authorities.add(new TransferRatePermission(0, 0));
-	// user.setAuthorities(authorities);
-	// users.add(user);
-	// }
-	// StorageUserManager userManager = new StorageUserManager(users);
-	// return userManager;
-	// }
 }

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

@@ -64,7 +64,7 @@ class ActionCaptchaLogin extends BaseAction {
 				}
 			}
 			if (Config.token().isInitialManager(credential)) {
-				if (!StringUtils.equals(Crypto.plainTextPassword(Config.token().getPassword()), password)) {
+				if (!StringUtils.equals(Config.token().getPassword(), password)) {
 					throw new ExceptionPersonNotExistOrInvalidPassword();
 				}
 				wo = this.manager(request, response, business, Wo.class);

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

@@ -43,7 +43,7 @@ class ActionLogin extends BaseAction {
 				throw new ExceptionPasswordEmpty();
 			}
 			if (Config.token().isInitialManager(credential)) {
-				if (!StringUtils.equals(Crypto.plainTextPassword(Config.token().getPassword()), password)) {
+				if (!StringUtils.equals(Config.token().getPassword(), password)) {
 					throw new ExceptionPersonNotExistOrInvalidPassword();
 				}
 				wo = this.manager(request, response, business, Wo.class);

+ 1 - 0
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/adminlogin/ActionLogin.java

@@ -14,6 +14,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.http.HttpToken;
 import com.x.base.core.project.http.TokenType;
+import com.x.base.core.project.tools.Crypto;
 
 class ActionLogin extends BaseAction {
 	ActionResult<Wo> execute(EffectivePerson effectivePerson, HttpServletRequest request, HttpServletResponse response,