修改配置文件初始化问题

pull/22/head
rays 2021-07-19 10:38:12 +08:00
parent ccd16bacd2
commit 8f4045285a
3 changed files with 23 additions and 7 deletions

View File

@ -1,5 +1,7 @@
package cn.stylefeng.roses.kernel.security.database.algorithm; package cn.stylefeng.roses.kernel.security.database.algorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
/** /**
* *
* <p> * <p>
@ -29,4 +31,14 @@ public interface EncryptAlgorithmApi {
* @date 2021/7/3 11:33 * @date 2021/7/3 11:33
**/ **/
String decrypt(String cipher); String decrypt(String cipher);
/**
*
* <p>
*
*
* @author majianguo
* @date 2021/7/19 10:04
**/
void setInstance(SymmetricCrypto instance);
} }

View File

@ -15,12 +15,17 @@ public class AesEncryptAlgorithmApiImpl implements EncryptAlgorithmApi {
/** /**
* AES * AES
*/ */
public final SymmetricCrypto symmetricCrypto; public SymmetricCrypto symmetricCrypto;
public AesEncryptAlgorithmApiImpl(byte[] key) { public AesEncryptAlgorithmApiImpl(byte[] key) {
symmetricCrypto = new SymmetricCrypto(SymmetricAlgorithm.AES, key); symmetricCrypto = new SymmetricCrypto(SymmetricAlgorithm.AES, key);
} }
@Override
public void setInstance(SymmetricCrypto instance) {
this.symmetricCrypto = instance;
}
@Override @Override
public String encrypt(String encryptedData) { public String encrypt(String encryptedData) {
return symmetricCrypto.encryptHex(encryptedData); return symmetricCrypto.encryptHex(encryptedData);
@ -30,5 +35,4 @@ public class AesEncryptAlgorithmApiImpl implements EncryptAlgorithmApi {
public String decrypt(String cipher) { public String decrypt(String cipher) {
return symmetricCrypto.decryptStr(cipher); return symmetricCrypto.decryptStr(cipher);
} }
} }

View File

@ -1,15 +1,13 @@
package cn.stylefeng.roses.kernel.security.database.init; package cn.stylefeng.roses.kernel.security.database.init;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto; import cn.hutool.crypto.symmetric.SymmetricCrypto;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.config.api.ConfigInitCallbackApi; import cn.stylefeng.roses.kernel.config.api.ConfigInitCallbackApi;
import cn.stylefeng.roses.kernel.security.api.expander.SecurityConfigExpander; import cn.stylefeng.roses.kernel.security.api.expander.SecurityConfigExpander;
import cn.stylefeng.roses.kernel.security.database.algorithm.EncryptAlgorithmApi; import cn.stylefeng.roses.kernel.security.database.algorithm.EncryptAlgorithmApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.security.auth.login.LoginContext;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
/** /**
@ -21,6 +19,9 @@ import java.nio.charset.StandardCharsets;
@Component @Component
public class DefaultConfigInitCallbackImpl implements ConfigInitCallbackApi { public class DefaultConfigInitCallbackImpl implements ConfigInitCallbackApi {
@Autowired
private EncryptAlgorithmApi encryptAlgorithmApi;
@Override @Override
public void initBefore() { public void initBefore() {
@ -29,8 +30,7 @@ public class DefaultConfigInitCallbackImpl implements ConfigInitCallbackApi {
@Override @Override
public void initAfter() { public void initAfter() {
// 修改数据库秘钥AES实例 // 修改数据库秘钥AES实例
EncryptAlgorithmApi encryptAlgorithmApi = SpringUtil.getBean(EncryptAlgorithmApi.class);
SymmetricCrypto symmetricCrypto = new SymmetricCrypto(SymmetricAlgorithm.AES, SecurityConfigExpander.getEncryptSecretKey().getBytes(StandardCharsets.UTF_8)); SymmetricCrypto symmetricCrypto = new SymmetricCrypto(SymmetricAlgorithm.AES, SecurityConfigExpander.getEncryptSecretKey().getBytes(StandardCharsets.UTF_8));
ReflectUtil.setFieldValue(encryptAlgorithmApi, "symmetricCrypto", symmetricCrypto); encryptAlgorithmApi.setInstance(symmetricCrypto);
} }
} }