spring项目本地配置及nacos远端配置的解密(不依赖jasypt框架)

这篇具有很好参考价值的文章主要介绍了spring项目本地配置及nacos远端配置的解密(不依赖jasypt框架)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

总览:

locator:NacosDecryptPropertySourceLocator.java
继承NacosPropertySourceLocator并重写locate方法,在nacos自身的热更新配置置入propertySources前将解密后的propertySource放入spring更新environment的队列(spring在更新environment时遇到同名的propertySource会优先选择更早放入的,所以本功能为@Order(-1),在正常的NacosPropertySourceLocator之前执行。

processor: InitializedBeanFactoryPostProcessor.java
实现BeanFactoryPostProcessor,主要作用是在spring加载本地bootstrap文件时将其中配置的nacos密码解密,以便获取远程配置文件

encryptor:SM4Encryptor.java
算法根据自己需要来选择,在上述两个类中提供解密方法。本处因公司要求选择商密4号SM4。

utils:CommonUtils
jasypt包内的同名util,只使用其中的判断是否有加密前后缀 【ENC()】及去除前后缀功能,及分割字符串封装方法substringAfter,substringBefore

resource/META-INF/spring.factories
使用spi机制,beanFactoryPostProcessor及propertySourceLocator在其中声明才能被spring框架加载。

代码实现

InitializedBeanFactoryPostProcessor.java 部分详见
https://blog.csdn.net/qq_39250932/article/details/126864888?spm=1001.2014.3001.5502,本处为复用代码。

locator:NacosDecryptPropertySourceLocator.java文章来源地址https://www.toymoban.com/news/detail-632432.html

CompositePropertySource composite = (CompositePropertySource) super.locate(env);
for (PropertySource propertySource : composite.getPropertySources()) {
	NacosPropertySource delegate = (NacosPropertySource)propertySource;
	Map source = delegate.getSource();
	// 同上处理加密密文
	…………………………
	source.put(key, decrypt);
}
return composite;

到了这里,关于spring项目本地配置及nacos远端配置的解密(不依赖jasypt框架)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jasypt-spring-boot敏感信息加密解密利器使用指南

    Springboot 整合Jasypt,实现配置信息的安全,如数据库连接.账号和密码.接口凭证信息等。 Jasypt可以为Springboot加密的信息很多,主要有: System Property 系统变量 Envirnment Property 环境变量 Command Line argument 命令行参数 Application.properties 应用配置文件 Yaml properties 应用配置文件 other

    2024年02月03日
    浏览(52)
  • Spring本地jar包依赖项目改为maven依赖

    我们在做项目的时候,可能会偶尔接手较为古老的项目,这些项目使用了较为老旧的版本管理或依赖管理方法,对于新开发项目来说,这些老旧的依赖管理方式会影响开发效率,所以,一般我们会选择将老项目的依赖管理修改为maven方式,简化依赖管理与测试打包等步骤 传统

    2024年02月06日
    浏览(59)
  • Spring Boot学习随笔- Jasypt加密数据库用户名和密码以及解密

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 Jasypt 全称是Java Simplified Encryption,是一个开源项目。 Jasypt与Spring Boot集成,以便在应用程序的属性文件中加密敏感信息,然后在应用程序运行时解密这些信息。 可以使用 jasypt-spring-boot-starter 这个依赖项。从而实现属性源

    2024年02月04日
    浏览(66)
  • 微服务nacos或者yml配置内容部分加密jasypt

    1.引入依赖(版本自定): 2.yml新增配置: 注:algorithm是加密算法,官方默认的加密算法是 PBEWITHHMACSHA512ANDAES_256,但是如果你用的是 JDK1.8,还用不了这个算法,JDK9以上才支持,所以可以把这个算法改成PBEWithMD5AndDES。 2.1.2版本默认加密方式为:PBEWithMD5AndDES 3.0.3版本默认加密

    2024年02月10日
    浏览(31)
  • Spring Cloud集成Nacos实现本地配置优先 | Spring Cloud 9

    Nacos Config Starter 实现了 org.springframework.cloud.bootstrap.config.PropertySourceLocator 接口,并将优先级设置为最高。 在 Spring Cloud 应用启动阶段,会主动从 Nacos Server 端获取对应的数据,并将获取到的数据转换成 PropertySource 且注入到 Environment 的 PropertySources 属性中,所以使用 @Value 注解

    2024年02月15日
    浏览(64)
  • SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)

    Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。它可以帮助开发人员在应用程序中加密密码、敏感信息和数据通信,还包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二进制文件。如果您正在使用Spring B

    2024年02月05日
    浏览(52)
  • SpringBoot+jasypt-spring-boot-starter实现配置文件明文加密

    springboot:2.1.4.RELEASE JDK:8 jasypt-spring-boot-starter:3.0.2 Jasypt默认算法为PBEWithMD5AndDES,该算法需要一个加密密钥,可以在应用启动时指定(环境变量)。也可以直接写入配置文件 3.1 application.properties配置文件版 加密后,可删除jasypt.encryptor.password配置;发版时可在命令行中配置 3.2 函数

    2024年02月15日
    浏览(39)
  • Jasypt加解密

    ​ Jasypt也即 Java Simplified Encryption 是 Sourceforge.net 上的一个开源项目。Jasypt 1.4的新特性包括:加密属性文件(encryptable properties files)、Spring Framework集成、加密Hibernate数据源配置、新的命令工具、URL加密的Apache wicket集成以及升级文档。 ​ 根据Jasypt文档,该技术可用于加密任务

    2023年04月20日
    浏览(29)
  • jasypt加密解密

    1. 导入依赖 2. yml配置 导入依赖后,就可以进行jasypt的加密配置 进行完上面操作,就可以在需要加密的地方进行配置了。 比如,配置数据库的账号密码,使用格式 ENC(加密后的密码) 进行加密。 但是如何获取这些加密值呢?接下来写一个加密解密的工具类。 3. 加密解密工具类

    2024年02月11日
    浏览(48)
  • Spring Boot项目使用 jasypt 加密组件进行加密(例如:数据库、服务的Key、等等进行加密)

    🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝 🍓 更多文章请点击 密码配置项都不加密? 想啥呢? 一

    2024年02月07日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包