Spring Boot隐私配置安全隔离方案
摘要:本文介绍如何安全地将云端密钥等隐私配置从application.yml中抽离。核心方案是将公共配置放在application.yml(提交Git),隐私配置放在application-local.yml(不提交Git),通过.gitignore确保安全。启动时激活local环境自动合并配置,支持命令行或IDEA指定。该方案既保证开发便利性,又确保密钥安全,团队开发互不干扰。最终实现公共配置与
·
如何把云端密钥、密码等隐私配置,从 application.yml 里抽离,本地开发用,测试/启动时切换,绝不提交到 Git!
一、核心思路(一句话)
- 公共配置:放
application.yml(提交Git) - 隐私配置:放
application-local.yml(不提交Git) - 启动/测试时:指定激活
local环境,自动合并隐私配置
二、具体实现步骤(跟着做就能用)
1. 创建 2 个配置文件
① application.yml (公共配置,可提交Git)
spring:
profiles:
# 默认激活 local(本地开发)
active: local
# 这里只放非敏感配置
my:
upload:
# 公共配置,不写密钥
endpoint: oss-cn-beijing.aliyuncs.com
② application-local.yml (隐私配置,绝不提交Git)
# 隐私配置:密钥、密码、SecretKey
aliyun:
oss:
accessKeyId: your-actual-key
accessKeySecret: your-actual-secret
my:
upload:
bucketName: private-bucket
2. 最重要:把 local 文件加入 .gitignore !!
在项目根目录的 .gitignore 里加一行:
# 隐私配置文件,绝对不上传
application-local.yml
✅ 这样你的密钥永远不会泄露到云端!
三、启动 / 测试时如何激活 local?
方式1:yml 默认激活(推荐)
spring:
profiles:
active: local
直接启动项目就会自动加载隐私配置
方式2:命令行启动指定(测试/打包发布用)
# Jar 启动时指定激活 local
java -jar app.jar --spring.profiles.active=local
方式3:IDEA 运行配置里指定
Run/Debug Configurations →
Program arguments →
--spring.profiles.active=local
四、为什么这样最安全?
- local 文件永远不上Git
- 生产环境可以用
application-prod.yml,用服务器环境变量注入 - 配置自动合并:公共 + 隐私自动合在一起用
- 团队开发每个人自己填自己的密钥,互不干扰
五、代码里怎么用?
@Component
public class OssConfig {
@Value("${aliyun.oss.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.oss.accessKeySecret}")
private String accessKeySecret;
}
完全不用改代码,自动读取 local 里的隐私配置!
六、最终结构
resources/
├─ application.yml # 公共配置(提交)
└─ application-local.yml # 隐私配置(不提交)
总结
- 公共配置 →
application.yml - 隐私配置 →
application-local.yml+ 加入.gitignore - 启动激活 →
spring.profiles.active=local - 安全:密钥永远不上传云端
更多推荐
所有评论(0)