gpt4 book ai didi

java - 未从 AttributeConverter 内的属性获取值

转载 作者:行者123 更新时间:2023-12-02 09:08:52 26 4
gpt4 key购买 nike

我已经创建了一个转换器,并希望从属性文件中获取 secretKey

@Converter
public class CryptoConverter implements AttributeConverter<String, String> {

private static final String ALGORITHM = "AES/ECB/PKCS5Padding";
private byte[] secretKey;

public CryptoConverter(@Value("${access_token_encryption_key}") String encryptionKey) {
secretKey = encryptionKey.getBytes();
}

@Override
public String convertToDatabaseColumn(String ccNumber) {
// do some encryption
Key key = new SecretKeySpec(secretKey, "AES");
try {
Cipher c = Cipher.getInstance(ALGORITHM);
c.init(Cipher.ENCRYPT_MODE, key);
return Base64.encodeBytes(c.doFinal(ccNumber.getBytes()));
} catch (Exception e) {
throw new RuntimeException(e);
}
}

@Override
public String convertToEntityAttribute(String dbData) {
// do some decryption
Key key = new SecretKeySpec(secretKey, "AES");
try {
Cipher c = Cipher.getInstance(ALGORITHM);
c.init(Cipher.DECRYPT_MODE, key);
return new String(c.doFinal(Base64.decode(dbData)));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

我已在 application.properties 文件中添加了 access_token_encryption_key key ,但无法获取该 key access_token_encryption_key 的值。

我认为这个转换器在 spring beans 之前加载。有什么想法可以解决这个问题吗?

谢谢。

最佳答案

转换器不受 Spring 管理。

添加@Component注解使其成为Spring Bean:

@Component
@Converter
public class CryptoConverter implements AttributeConverter<String, String> {

关于java - 未从 AttributeConverter 内的属性获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com