java项目引入jasypt后读取不到配置文件,jar包config同级的配置文件读取不到

java项目引入jasypt后读取不到配置文件,jar包config同级的配置文件读取不到

背景

项目上要求配置文件加密,因此使用jasypt进行处理。
依赖:

		<dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>3.0.4</version>
        </dependency>

配置文件

jasypt:
  encryptor:
    # 上线后需要设置为对应的加密key,
    password: xx
 
#涉及到用户名密码
    username: admin
    password: ENC(xx)

密钥生成:

package com.message.demo.enc;
 
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.jasypt.iv.RandomIvGenerator;
import org.jasypt.salt.RandomSaltGenerator;
 
/**
 * 用于java配置文件enc加密
 */
public class EncEncoder3 {
 
    private static final String ENCRYPTION_PASSWORD = "w8Jq52gQzCJmUCQY"; // 替换为你的加密密钥
 
 
    public static void main(String[] args) {
 
      
        String target = "123456";
         
        StringEncryptor encryptor = jasyptStringEncryptor();
 
        System.out.println(encryptor.encrypt(target));
 
        System.out.println(encryptor.decrypt("bmiIXVeUFmARgh5AVuXpyRsuMplvE89XvPREM+aurGSrGLB5XUmHdWqGV674+rcf"));
    }
    public static StringEncryptor jasyptStringEncryptor() {
 
 
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(ENCRYPTION_PASSWORD);
        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        config.setPoolSize(1);
        config.setKeyObtentionIterations("1000");
        config.setProviderName("SunJCE");
        config.setSaltGenerator(new RandomSaltGenerator());
        config.setIvGenerator(new RandomIvGenerator());
        config.setStringOutputType("base64");
 
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setConfig(config);
        return encryptor;
    }
 
 
}

注意:

1.9.3版本,如果使用官方jar包的方式生成密文,指定算法和不指定算法生成的密文,java项目解析不了,所以要用上面的工具类生成。java项目中默认用的就是代码上的类进行解密

方法在:com.ulisesbocchio.jasyptspringboot.configuration.StringEncryptorBuilder#createPBEDefault

遇到的问题:

本地启动正常,发布到测试环境,提示cant resolve placeholder xx
读不到配置文件,配置文件存放目录:
项目.jar,config,logs.

cd config

application-test.yml。

解决方法:

# spring cloud 项目引入jasypt-spring-boot-starter后application-{profile}的配置不生效,处理方式
jasypt:
  encryptor:
    bootstrap: false

解决链接:

https://huaweicloud.youkuaiyun.com/64eea832c70554103b8eb353.html

ps:吐槽一下,网上搜到的大部分文章都是标准的接入流程,难道都没有遇到问题吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值