Kaynağa Gözat

Merge branch 'feature/update_remove_password' into 'develop'

升级命令去掉口令验证

See merge request o2oa/o2oa!174
o2null 5 yıl önce
ebeveyn
işleme
45342b5e2c

+ 3 - 3
o2server/x_console/src/main/java/com/x/server/console/CommandFactory.java

@@ -48,7 +48,7 @@ public class CommandFactory {
 
 	public static final Pattern exit_pattern = Pattern.compile("^ {0,}exit {0,}$", Pattern.CASE_INSENSITIVE);
 
-	public static final Pattern updateFile_pattern = Pattern.compile("^ {0,}update file (.+) (true|false) (.+)$",
+	public static final Pattern updateFile_pattern = Pattern.compile("^ {0,}update file (.+) (true|false) {0,}$",
 			Pattern.CASE_INSENSITIVE);
 
 	public static final Pattern version_pattern = Pattern.compile("^ {0,}version {0,}$", Pattern.CASE_INSENSITIVE);
@@ -84,7 +84,7 @@ public class CommandFactory {
 	public static void printHelpLine() {
 		try {
 			String help = "";
-			help += " help                                   show useage message.";
+			help += " help                                   show usage message.";
 			help += StringUtils.LF;
 			help += " start|stop [all]                       start stop all enable server.";
 			help += StringUtils.LF;
@@ -110,7 +110,7 @@ public class CommandFactory {
 			// help += StringUtils.LF;
 			help += " setPassword (oldpasswd) (newpasswd)    change initial manager password.";
 			help += StringUtils.LF;
-			help += " update file (path) (backup) (passwd)   upgrade to new version from local zip file.";
+			help += " update file (path) (backup)            upgrade to new version from local zip file.";
 			help += StringUtils.LF;
 			// help += " compact data (passwd) compact local h2 repository database.";
 			// help += StringUtils.LF;

+ 4 - 4
o2server/x_console/src/main/java/com/x/server/console/Main.java

@@ -38,7 +38,7 @@ import com.x.server.console.action.ActionConfig;
 import com.x.server.console.action.ActionCreateEncryptKey;
 import com.x.server.console.action.ActionDebugDesignDetail;
 import com.x.server.console.action.ActionSetPassword;
-import com.x.server.console.action.ActionUpdateFile;
+import com.x.server.console.action.UpdateFile;
 import com.x.server.console.action.ActionVersion;
 import com.x.server.console.log.LogTools;
 import com.x.server.console.server.Servers;
@@ -260,7 +260,7 @@ public class Main {
 
 			matcher = CommandFactory.updateFile_pattern.matcher(cmd);
 			if (matcher.find()) {
-				if (updateFile(matcher.group(1), matcher.group(2), matcher.group(3))) {
+				if (updateFile(matcher.group(1), matcher.group(2))) {
 					stopAll();
 					System.exit(0);
 				} else {
@@ -329,9 +329,9 @@ public class Main {
 		return true;
 	}
 
-	private static boolean updateFile(String path, String backup, String password) {
+	private static boolean updateFile(String path, String backup) {
 		try {
-			return new ActionUpdateFile().execute(path, BooleanUtils.toBoolean(backup), password);
+			return new UpdateFile().execute(path, BooleanUtils.toBoolean(backup));
 		} catch (Exception e) {
 			e.printStackTrace();
 		}

+ 0 - 185
o2server/x_console/src/main/java/com/x/server/console/action/ActionUpdate.java

@@ -1,185 +0,0 @@
-package com.x.server.console.action;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.gson.XGsonBuilder;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.DateTools;
-import com.x.base.core.project.tools.JarTools;
-
-public class ActionUpdate extends ActionBase {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionUpdate.class);
-
-	private Date start;
-
-	private void init() throws Exception {
-		this.start = new Date();
-	}
-
-	private static final String LATEST = "latest";
-
-	public boolean execute(String password, boolean backup, boolean latest) {
-		try {
-			this.init();
-			if (!StringUtils.equals(Config.token().getPassword(), password)) {
-				logger.print("password not mactch.");
-				return false;
-			}
-			WrapUpdateVersion wrapUpdateVersion = this.get(latest);
-			if (StringUtils.equals(LATEST, wrapUpdateVersion.getVersion())) {
-				logger.print("already the latest version.");
-				return false;
-			} else {
-				if (backup) {
-					this.backup();
-				}
-				File file = this.getPack(wrapUpdateVersion.getUrl());
-				this.unzip(file);
-				logger.print("update completed in {} seconds, restart server to continue update.",
-						((new Date()).getTime() - start.getTime()) / 1000);
-				FileUtils.forceDelete(file);
-				return true;
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-
-	private void backup() throws Exception {
-		File dir = Config.dir_local_backup(true);
-		String tag = DateTools.compact(new Date());
-		File dest = new File(dir, tag + ".zip");
-		logger.print("backup current version to {}.", dest.getAbsolutePath());
-		List<File> files = new ArrayList<>();
-		files.add(Config.dir_commons());
-		files.add(Config.dir_config());
-		files.add(Config.dir_configSample());
-		files.add(Config.dir_localSample());
-		files.add(Config.dir_jvm());
-		files.add(Config.dir_servers());
-		files.add(Config.dir_store());
-		files.add(Config.dir_dynamic());
-		files.add(Config.dir_custom());
-		files.add(new File(Config.base(), "console.jar"));
-		files.add(new File(Config.base(), "index.html"));
-		files.add(new File(Config.base(), "version.o2"));
-		FileFilter fileFilter = new RegexFileFilter("^(start_|stop_|console_)(aix|windows|linux|macos).(sh|bat)$");
-		for (File _f : new File(Config.base()).listFiles(fileFilter)) {
-			files.add(_f);
-		}
-		JarTools.jar(files, dest);
-		logger.print("backup current version completed.");
-	}
-
-	private WrapUpdateVersion get(boolean toLatest) throws Exception {
-		String address = "";
-		if (toLatest) {
-			address = Config.collect().url("/o2_collect_assemble/jaxrs/update/latest/version");
-		} else {
-			address = Config.collect().url("/o2_collect_assemble/jaxrs/update/next/" + Config.version());
-		}
-		URL url = new URL(address);
-		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-		connection.setUseCaches(false);
-		connection.setRequestProperty("Content-Type", HttpMediaType.APPLICATION_JSON_UTF_8);
-		connection.setRequestMethod("GET");
-		connection.setDoOutput(false);
-		connection.setDoInput(true);
-		connection.connect();
-		String json = "";
-		try (InputStream input = connection.getInputStream()) {
-			json = IOUtils.toString(input, StandardCharsets.UTF_8);
-		}
-		connection.disconnect();
-		Gson gson = XGsonBuilder.instance();
-		JsonElement jsonElement = gson.fromJson(json, JsonElement.class);
-		if (jsonElement.isJsonObject()) {
-			JsonObject jsonObject = jsonElement.getAsJsonObject();
-			if (jsonObject.has("data")) {
-				return XGsonBuilder.instance().fromJson(jsonObject.get("data"), WrapUpdateVersion.class);
-			}
-		}
-		return null;
-	}
-
-	public static class WrapUpdateVersion {
-
-		private String version;
-
-		private Long size;
-
-		private String url;
-
-		public String getVersion() {
-			return version;
-		}
-
-		public void setVersion(String version) {
-			this.version = version;
-		}
-
-		public String getUrl() {
-			return url;
-		}
-
-		public void setUrl(String url) {
-			this.url = url;
-		}
-
-		public Long getSize() {
-			return size;
-		}
-
-		public void setSize(Long size) {
-			this.size = size;
-		}
-	}
-
-	private File getPack(String address) throws Exception {
-		logger.print("download update pack form url: {}.", address);
-		URL url = new URL(address);
-		File file = new File(Config.base(), "local/update.zip");
-		if (file.exists() && file.isFile()) {
-			FileUtils.forceDelete(file);
-		}
-		FileUtils.copyURLToFile(url, file);
-		logger.print("download update pack completed.");
-		return file;
-	}
-
-	private void unzip(File file) throws Exception {
-		File dir = Config.dir_local_update(true);
-		FileUtils.cleanDirectory(dir);
-		JarTools.unjar(file, "", dir, true);
-		File dir_local = new File(dir, "local");
-		if (dir_local.exists()) {
-			FileUtils.forceDelete(dir_local);
-		}
-		File dir_config = new File(dir, "config");
-		if (dir_config.exists()) {
-			FileUtils.forceDelete(dir_config);
-		}
-	}
-
-}

+ 9 - 11
o2server/x_console/src/main/java/com/x/server/console/action/ActionUpdateFile.java → o2server/x_console/src/main/java/com/x/server/console/action/UpdateFile.java

@@ -6,19 +6,21 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.tools.DateTools;
 import com.x.base.core.project.tools.JarTools;
 
-public class ActionUpdateFile extends ActionUpdate {
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+
+/**
+ * @author Zhou Rui
+ */
+public class UpdateFile extends ActionBase {
 
-	private static Logger logger = LoggerFactory.getLogger(ActionUpdateFile.class);
+	private static Logger logger = LoggerFactory.getLogger(UpdateFile.class);
 
 	private Date start;
 
@@ -26,13 +28,9 @@ public class ActionUpdateFile extends ActionUpdate {
 		this.start = new Date();
 	}
 
-	public boolean execute(String path, boolean backup, String password) {
+	public boolean execute(String path, boolean backup) {
 		try {
 			this.init();
-			if (!StringUtils.equals(Config.token().getPassword(), password)) {
-				logger.print("password not mactch.");
-				return false;
-			}
 			File file = new File(path);
 			if (!file.exists() || file.isDirectory()) {
 				logger.print("zip file not exist path:{}.", path);