加密配置是一个很常见的需求,在spring boot生态中,已经有非常多的第三方starter实现了,博主所在公司也有这种强制要求,一些敏感配置信息必须加密,比如第三方账号,数据库密码等等。所以研究了下怎么在quarkus中实现类似的配置加密功能。在前文quarkus集成apollo配置中心中,已经有介绍过quarkus中的配置架构了,配置加密功能也是基于smallrye-config来实现。
eclip microprofile config:https://github.com/eclip/microprofile-config/
smallrye-config:https://github.com/smallrye/smallrye-config
在实现功能前,先看下smallrye-config1.8版本新增的配置拦截器功能。configsourceinterceptor拦截器定义如下:
实现这个接口,可以在配置加载的时候通过context拿到当前配置的值,然后进行任意逻辑操作。
拦截器是通过java.util.rviceloader机制加载的,可以通过提供名为io.smallrye.config.configsourceinterceptor的文件进行注册,该资源meta-inf/rvices/io.smallrye.config.configsourceinterceptor包含完全限定的configsourceinterceptor实现类名称作为其内容。
前文quarkus集成apollo配置中心中,我们已了解quarkus的配置基于eclip microprofile config的规范和smallrye-config的实现,但是configsourceinterceptor的接口设计却没有包含在microprofile config的配置规范中,smallrye团队正在努力参与规范的制定,所以后期这个接口很有可能会迁移到microprofile config包中,不过目前来看,你可以放心的使用smallrye-config1.8版本体验配置拦截器功能
smallrye-config内置了如下配置拦截器实现:
relocateconfigsourceinterceptor
profileconfigsourceinterceptor
expressionconfigsourceinterceptor
fallbackconfigsourceinterceptor
loggingconfigsourceinterceptor
cretkeyconfigsourceinterceptor
默认情况下,并非每个拦截器都已注册。只有profileconfigsourceinterceptor, expressionconfigsourceinterceptor、cretkeyconfigsourceinterceptor默认已注册。
其他拦截器需要通过rviceloader机制进行手动注册。配置中的${}表达式功能正是expressionconfigsourceinterceptor来实现的
基于configsourceinterceptor的机制,实现一个加密的拦有关秋天的文章截器,在配置时,标记需要被解密的配置,在应用启动时,拦截配置加载,做解密处理即可。这里使用了aes加解密算法,将aeskey配置在配置文件中,将vi向量直接写死在代码里,这样,即使别人拿到了你的完整配置,不知道vi向量值,也无法解密。
configsourceinterceptor实现类可以通过标准javax.annotation.priority 注释指定优先级。如果未明确指定优先级,则采用io.smallrye.config.priorities.application默认优先级值 。指定优先级时,value值越小,优先级越高,这里指定为platform早期拦截,代码如下:
记得将完整的类名写入到meta-inf/rvices/io.smallrye.config.configsourceinterceptor这个文件中。使用时先配置好加密的key,在application.properties中添加如下配置:
配置值一定要16位,然后将需要加密的值,使用aencyptutil.encrypt(final object plaintext, string key)方法先得到加密的值,然后做如下配置,以数据库密码为例:
使用encrypt=>标爱国作文500字记了这个值是加密的,应用李白写的古诗程序加载时会被拦截到,然后做解密处理
总的来说,quarkus中使用的一些api设计是非常优秀的的,通过预留的这种扩展机制,可以非常轻松的实现扩展功能。
以上就是quarkus中configsourceinterceptor的加密配置实现的详细内容,更多关于quarkus中configsourc迷茫的生活einterce社团活动策划书ptor加密的资料请关注www.887551.com其它相关文章!
本文发布于:2023-04-05 21:34:30,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8be4c4f4620adf4c258ee38f578c4378.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Quarkus中ConfigSourceInterceptor的加密配置实现.doc
本文 PDF 下载地址:Quarkus中ConfigSourceInterceptor的加密配置实现.pdf
留言与评论(共有 0 条评论) |