Ver Fonte

自动导包、登录验证

mxd há 4 anos atrás
pai
commit
76f29d904f

+ 9 - 0
src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java

@@ -39,6 +39,7 @@ import org.ssssssss.magicapi.provider.impl.DefaultMagicAPIService;
 import org.ssssssss.magicapi.provider.impl.DefaultPageProvider;
 import org.ssssssss.magicapi.provider.impl.DefaultResultProvider;
 import org.ssssssss.magicapi.utils.ClassScanner;
+import org.ssssssss.script.MagicPackageLoader;
 import org.ssssssss.script.MagicModuleLoader;
 import org.ssssssss.script.MagicScript;
 import org.ssssssss.script.MagicScriptEngine;
@@ -307,6 +308,11 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer {
 				MagicScriptEngine.addDefaultImport(moduleName, MagicModuleLoader.loadModule(moduleName));
 			}
 		}
+		List<String> importPackages = properties.getAutoImportPackageList();
+		for (String importPackage : importPackages) {
+			logger.info("自动导包:{}", importPackage);
+			MagicPackageLoader.addPackage(importPackage);
+		}
 		if (extensionMethods != null) {
 			for (ExtensionMethod extension : extensionMethods) {
 				List<Class<?>> supports = extension.supports();
@@ -347,6 +353,9 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer {
 		controller.setDebugTimeout(properties.getDebugConfig().getTimeout());
 		controller.setMagicApiService(apiServiceProvider);
 		controller.setMappingHandlerMapping(mappingHandlerMapping);
+		SecurityConfig securityConfig = properties.getSecurityConfig();
+		controller.setUsername(securityConfig.getUsername());
+		controller.setPassword(securityConfig.getPassword());
 		// 构建UI请求处理器
 		String base = properties.getWeb();
 		Method[] methods = WebUIController.class.getDeclaredMethods();

+ 30 - 0
src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIProperties.java

@@ -41,6 +41,12 @@ public class MagicAPIProperties {
 	 */
 	private String autoImportModule = "db";
 
+	/**
+	 * 可自动导入的包(目前只支持结尾以.*结尾的通配符),多个用","分隔
+	 * @since 0.3.5
+	 */
+	private String autoImportPackage = "java.lang.*,java.util.*";
+
 	/**
 	 * 自动刷新间隔,单位为秒,默认不开启
 	 * @since 0.3.4
@@ -58,6 +64,10 @@ public class MagicAPIProperties {
 	 */
 	private boolean mapUnderscoreToCamelCase = true;
 
+
+	@NestedConfigurationProperty
+	private SecurityConfig securityConfig = new SecurityConfig();
+
 	@NestedConfigurationProperty
 	private PageConfig pageConfig = new PageConfig();
 
@@ -138,6 +148,14 @@ public class MagicAPIProperties {
 		this.debugConfig = debugConfig;
 	}
 
+	public SecurityConfig getSecurityConfig() {
+		return securityConfig;
+	}
+
+	public void setSecurityConfig(SecurityConfig securityConfig) {
+		this.securityConfig = securityConfig;
+	}
+
 	public String getPrefix() {
 		return prefix;
 	}
@@ -189,4 +207,16 @@ public class MagicAPIProperties {
 	public void setAllowOverride(boolean allowOverride) {
 		this.allowOverride = allowOverride;
 	}
+
+	public String getAutoImportPackage() {
+		return autoImportPackage;
+	}
+
+	public void setAutoImportPackage(String autoImportPackage) {
+		this.autoImportPackage = autoImportPackage;
+	}
+
+	public List<String> getAutoImportPackageList() {
+		return Arrays.asList(autoImportPackage.replaceAll("\\s","").split(","));
+	}
 }

+ 34 - 0
src/main/java/org/ssssssss/magicapi/spring/boot/starter/SecurityConfig.java

@@ -0,0 +1,34 @@
+package org.ssssssss.magicapi.spring.boot.starter;
+
+/**
+ * 安全配置
+ * @since 0.4.0
+ */
+public class SecurityConfig {
+
+	/**
+	 * 登录用的用户名
+	 */
+	private String username;
+
+	/**
+	 * 登录用的密码
+	 */
+	private String password;
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+}