有时安全不得不考虑,看看新闻泄漏风波事件就知道了我们在用Spring boot进行开发时,经常要配置很多外置参数ftp、数据库连接信息、支付信息等敏感隐私信息,如下
这不太好,特别是互联网应用,应该用加密的方式比较安全,有点类似一些应用如电商、公安、安检平台、滚动式大屏中奖信息等显示身份证号和手机号都是前几位4109128*********和158*******。那就把图中的明文改造下1. 引入加密包,可选,要是自己实现加解密算法,就不需要引入第三方加解密库
1 2 3 4 5 | <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version> 3.0 . 2 </version> </dependency> |
2. 加密敏感内容,然后填充配置文件加密代码:
1 2 3 4 5 6 7 8 | BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); textEncryptor.setPassword( "company" ); String name = textEncryptor.encrypt( "root" ); String password = textEncryptor.encrypt( "cstorfs" ); System.out.println( "数据库用户名加密后:" +name); System.out.println( "数据库密码加密后:" +password); |
输出加密后的效果
把这两个值对应的填充到数据库用户名和密码
3. 编写配置类就是Spring里的标有@Configuration注解的类,然后解密配置文件里的数据库用户名和密码(就是上图中的敏感属性字段)
4. 编写测试案例只写核心代码
1 2 3 4 5 6 7 8 9 | // 我使用的最新版Springboot2.3.0(放弃1版本)启动后,不放心的话可以测试数据库是否连接正常 UserMapper userMapper = applicationContext.getBean(UserMapper. class ); Example example = new Example(User. class ); example.createCriteria().andEqualTo( "username" , "dongguangming" ); List<User> userList = userMapper.selectByExample(example); if (userList.size() > 0 ) { User user = userList.get( 0 ); logger.info( "数据库连接正常,从用户表取用户名是donggguangming的数据,用户:" + user); } |
输出效果:
ok,就是这效果!!!注意,加解密算法没有强制要求,可以自己写,敏感信息(ftp、email、数据库连接信息、支付支付宝微信等)也可以接着加,用的时候把它解密出现就行
总结
到此这篇关于Spring Boot加密配置文件特殊内容的示例代码详解的文章就介绍到这了,更多相关spring boot加密配置文件特殊内容内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/187598/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)