diff --git a/pom.xml b/pom.xml
index 3484623..6451d65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,11 @@
1.8
+
+ com.github.ulisesbocchio
+ jasypt-spring-boot-starter
+ 3.0.5
+
org.springframework.boot
spring-boot-starter-web
diff --git a/src/main/java/com/bonus/boot/manager/SecurityApplication.java b/src/main/java/com/bonus/boot/manager/SecurityApplication.java
index dafa21c..c20aa90 100644
--- a/src/main/java/com/bonus/boot/manager/SecurityApplication.java
+++ b/src/main/java/com/bonus/boot/manager/SecurityApplication.java
@@ -1,19 +1,40 @@
package com.bonus.boot.manager;
+import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
+import org.jasypt.encryption.StringEncryptor;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+import javax.annotation.Resource;
+
/**
* 启动类
*
*/
+@EnableEncryptableProperties
@SpringBootApplication
@MapperScan("com.bonus.boot.manager.*.dao")
@EnableTransactionManagement//启动事务
-public class SecurityApplication {
+public class SecurityApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(SecurityApplication.class, args);
}
+ @Resource(name="codeSheepEncryptorBean")
+ private StringEncryptor encryptor;
+ @Override
+ public void run(String... args) throws Exception {
+ String encryptStr = encrypt("Jsk@131551" );
+ System.err.println( "原始明文密码加密后的结果为:" + encryptStr );
+ }
+
+ private String encrypt( String originPassord ) {
+ return encryptor.encrypt( originPassord );
+ }
+
+ private String decrypt( String encryptedPassword ) {
+ return encryptor.decrypt( encryptedPassword );
+ }
}
diff --git a/src/main/java/com/bonus/boot/manager/manager/config/DruidConfig.java b/src/main/java/com/bonus/boot/manager/manager/config/DruidConfig.java
index 4cfe163..80ca9e9 100644
--- a/src/main/java/com/bonus/boot/manager/manager/config/DruidConfig.java
+++ b/src/main/java/com/bonus/boot/manager/manager/config/DruidConfig.java
@@ -3,14 +3,17 @@ package com.bonus.boot.manager.manager.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
+import org.jasypt.encryption.StringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
+import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.SQLException;
@@ -20,7 +23,7 @@ import java.sql.SQLException;
*
*/
@Deprecated
-//@Configuration
+@Configuration
public class DruidConfig {
private static final Logger log = LoggerFactory.getLogger("adminLogger");
@@ -50,7 +53,8 @@ public class DruidConfig {
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
-
+ @Resource(name="codeSheepEncryptorBean")
+ private StringEncryptor encryptor;
/**
* 数据源配置
*
@@ -226,9 +230,9 @@ public class DruidConfig {
@Primary
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
- datasource.setUrl(url);
- datasource.setUsername(username);
- datasource.setPassword(password);
+ datasource.setUrl(encryptor.decrypt(url));
+ datasource.setUsername(encryptor.decrypt(username));
+ datasource.setPassword(encryptor.decrypt(password));
datasource.setDriverClassName(driverClassName);
datasource.setInitialSize(initialSize);
diff --git a/src/main/java/com/bonus/boot/manager/manager/config/JasyptConfig.java b/src/main/java/com/bonus/boot/manager/manager/config/JasyptConfig.java
new file mode 100644
index 0000000..37c6c99
--- /dev/null
+++ b/src/main/java/com/bonus/boot/manager/manager/config/JasyptConfig.java
@@ -0,0 +1,41 @@
+package com.bonus.boot.manager.manager.config;
+
+import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
+import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+@Configuration
+@Primary // 解决Bean冲突
+public class JasyptConfig {
+ public static String encryPassword;
+ @Value("${jasypt.encryptor.password}")
+ public void setEncryPassword(String encryPassword) {
+ JasyptConfig.encryPassword = encryPassword;
+ }
+ @Primary // 解决Bean冲突
+ @Bean("codeSheepEncryptorBean")
+ public StandardPBEStringEncryptor encryptor() {
+ StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
+ SimpleStringPBEConfig config = new SimpleStringPBEConfig();
+ // 密钥(生产环境从启动参数/环境变量读取)
+ System.err.println("JasyptConfig.encryPassword============="+JasyptConfig.encryPassword);
+ config.setPassword(JasyptConfig.encryPassword);
+ // 加密算法(必须与生成密文时一致)
+ config.setAlgorithm("PBEWithMD5AndDES");
+ // 迭代次数(必须与生成密文时一致)
+ config.setKeyObtentionIterations("1000");
+ // 池大小
+ config.setPoolSize("1");
+ // 加密提供者
+ config.setProviderName("SunJCE");
+ // 盐值生成器(必须与生成密文时一致)
+ config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
+ // 输出格式(必须与生成密文时一致)
+ config.setStringOutputType("base64");
+ encryptor.setConfig(config);
+ return encryptor;
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 09d155e..fc665d7 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -23,25 +23,41 @@ spring.datasource.dynamic.primary=mysqldb
#spring.datasource.password=HAY@xyksj666
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+# Jasypt配置
+jasypt.encryptor.password=Encrypt
+jasypt.encryptor.algorithm=PBEWithMD5AndDES
+
#测试
-spring.datasource.url=jdbc:mysql://192.168.0.16:4419/hftows?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
-spring.datasource.username=root
-spring.datasource.password=Bonus@admin123!
+#spring.datasource.url=jdbc:mysql://127.0.0.1:13306/hftows?allowPublicKeyRetrieval=true&useSSL=false
+#spring.datasource.username=root
+#spring.datasource.password=Jsk@131551
+# 加密后的数据库配置
+spring.datasource.url=bnP7cxXY9VBxpmnoCw6AKMPVuM2CJC2qS5Xdo+5R1erSv6yF4rT5KaVHeZIJQ6Eb8hidRttHZkp9XefsDZ4FsNgCpO8Wpr1RZO7Uec9DeCiq6wYrtIk50A==
+spring.datasource.username=Sl/i+bA1qLvo/0jtgPEd0g==
+spring.datasource.password=k88ZpS57lphu0xoUumSwSWK2ACmtkOMy
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#服务器
-#spring.datasource.url=jdbc:mysql://10.67.3.11:13306/hftows?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
-#spring.datasource.username=root
-#spring.datasource.password=Bonus@ss123!7788
-#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-#spring.datasource.url=jdbc:mysql://127.0.0.1:13306/hftows?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hftows?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+#spring.datasource.username=root
+#spring.datasource.password=ss@Bns778899!
+# 加密后的数据库配置
+#spring.datasource.url=mLU1zRnperCRJDoOkRCbk0b94Bt3jLLgiZRFp0usR8dABqflxsszkS9+kteqJXxvNIre2zGSRVSKCf+QgVMLagMnkfIMQz/P6/OUc+cIjkD+0Zuif0L2f8X9qDdR3c9CbzGnKPyDPUr9M/RirNY/aY2+c5EPRMA5CZyCj0r2u1l5NuQBZ6VWpH9c56jwdvynmAazHWdrjOI=
+#spring.datasource.username=d+2Wdd5ZxvusWFjsZrC0gQ==
+#spring.datasource.password=PhmPdVGB3LpeF/GoNK28NoUjLi0H6ZNz
+
+#spring.datasource.url=jdbc:mysql://10.67.3.11:13306/hftows?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
#spring.datasource.username=root
#spring.datasource.password=Bonus@ss123!7788
-#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+# 加密后的数据库配置
+#spring.datasource.url=SGAKtw23LQkSHxkGVBaDOjD/B1LAZW9D/vu0xWFg8EgHAVwCa9U7wEBztjjuW2EpZKETcj5E966c+EKDz9ZFPVDodkFkW2BusTaN77MWGsCebTNKp2vtwqXR6Ws7Vy+Bs5wYPVGin0ebQWmcseGOZrySYGNrqLorONg8CxX+KI0Qk6h861eDXK4vzpFSHvJ9+/QLZHANKug=
+#spring.datasource.username=j5/3eNO2Q2kuun5CMlNgaA==
+#spring.datasource.password=0QKveQwxQP8KjzdOkd/FlUqUVc9u9FB5njfv74l7PeU=
spring.datasource.max-idle=10
spring.datasource.max-wait=60000
spring.datasource.min-idle=5
+spring.datasource.maxActive=5
spring.datasource.initial-size=5
server.session.timeout=10
server.tomcat.uri-encoding=UTF-8
@@ -87,7 +103,7 @@ spring.servlet.multipart.enabled=true
files.path=/data/files/
files.win.path=d:/files/
-hfTowsBmw.aq.enable=false
+hfTowsBmw.aq.enable=true
#\uFFFD\uFFFD\u00BC\uFFFD\uFFFD\u05A4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u02B1\uFFFD\u48EC\uFFFD\uFFFD\u03BB \uFFFD\uFFFD\uFFFD\uFFFD
loginCode.expiration = 3
diff --git a/src/main/resources/static/js/publicJs.js b/src/main/resources/static/js/publicJs.js
index 1c43d5e..05fe88a 100644
--- a/src/main/resources/static/js/publicJs.js
+++ b/src/main/resources/static/js/publicJs.js
@@ -1,6 +1,6 @@
var offlineState = "0";
var ctxPath = getContextPath();
-var aqEnnable = false;//是否开启安全验证
+var aqEnnable = true;//是否开启安全验证
console.log(ctxPath)
var dataUrl = getContextPath();
var imgUrl = dataUrl + /files/;