当前位置: 首页 > news >正文

面试问题梳理:项目中防止配置中的密码泄露-Jasypt

背景

想起面试的时候,面试官问我现在大家用Spring框架,数据库、ES之类的密码都是配置在配置文件中的,有很大的安全隐患,你有考虑过怎么解决嘛?
当时我回答是可以在项目启动的过程中的命令行追加的方式,感觉面试官不太满意,让我回去等通知~
所以才想起来查了下Jasypt这个组件,有了这篇文档。

基础配置

这个组件的使用还是比较简单的,引入POM依赖,设置加密方式,添加前后缀即可使用

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

运行原理

根据我的理解,Jasypt的工作原理如下

  • jasypt-spring-boot-starter这个包里面配置了Spring需要扫描的路径和初始化的bean对象
  • 初始的bean对象会读取Spring的配置对象容器,然后将容器内容的配置对象都替换为Jasypt中EncryptablePropertySource,也就是配置对象的子类。
  • Spring是通过getProperty(name),而Jasypt重写了这个方法,在调用获取配置项值的过程中判断值是否包含加密前后缀,然后进行解密返回
    当然里面还包含了很多细节,如加密方式,对配置对象的代理,对配置项的缓存存储等。

感谢

感谢大佬对源码的解析

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • DNS缓存详解
  • headerpwn:一款针对服务器响应与HTTP Header的模糊测试工具
  • 优化实战篇—自关联的优化
  • 《昇思25天学习打卡营第05天|qingyun201003》
  • debian固定ip
  • c++ :运算符重载函数中的细节
  • jmeter-beanshell学习9-放弃beanshell
  • k8s快速部署一个网站
  • tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器
  • 【python学习】python标准库之正则表达式库re的定义、功能和函数,以及正则表达式的元字符和含义
  • 【深度学习入门篇 ②】Pytorch完成线性回归!
  • Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
  • Spring AOP 实现 Excel 导出统一处理
  • Linux——公网 IP别名设置,清屏,删除别名,在linux中提供alias永久化的方法,命令历史
  • 【Superset】dashboard 自定义URL
  • [case10]使用RSQL实现端到端的动态查询
  • Angular 2 DI - IoC DI - 1
  • angular组件开发
  • CentOS从零开始部署Nodejs项目
  • CSS魔法堂:Absolute Positioning就这个样
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Shadow DOM 内部构造及如何构建独立组件
  • windows下使用nginx调试简介
  • 创建一个Struts2项目maven 方式
  • 大型网站性能监测、分析与优化常见问题QA
  • 如何设计一个比特币钱包服务
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 智能合约开发环境搭建及Hello World合约
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​批处理文件中的errorlevel用法
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (7)STL算法之交换赋值
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • ./configure、make、make install 命令
  • .cfg\.dat\.mak(持续补充)
  • .net MySql
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET4.0并行计算技术基础(1)
  • /etc/skel 目录作用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @基于大模型的旅游路线推荐方案
  • []FET-430SIM508 研究日志 11.3.31
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [BT]BUUCTF刷题第9天(3.27)
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C#]winform部署官方yolov10目标检测的onnx模型