gpt4 book ai didi

ssl - 在 Ratpack 中,如何配置从外部文件加载配置?

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:14 25 4
gpt4 key购买 nike

我有一个使用 Groovy DSL 编写的 Ratpack 应用程序。 (嵌入在 Java 中,因此不是脚本。)

我想从命令行选项中提供的配置文件加载服务器的 SSL 证书。 (证书将直接嵌入到配置中,或者可能嵌入到配置中某处引用的 PEM 文件中。)

例如:

java -jar httpd.jar /etc/app/sslConfig.yml

sslConfig.yml:

---
ssl:
privateKey: file:///etc/app/privateKey.pem
certChain: file:///etc/app/certChain.pem

使用 serverConfig 读取配置文件以便稍后在 中配置 SslContext 时,我似乎遇到了先有鸡还是先有蛋的问题>服务器配置。服务器配置未在我要加载 SslContext 时创建。

为了说明,我的 DSL 定义是这样的:

   // SSL Config POJO definition
class SslConfig {
String privateKey
String certChain
SslContext build() { /* ... */ }
}

// ... other declarations here...

Path configPath = Paths.get(args[1]) // get this path from the CLI options

ratpack {
serverConfig {
yaml "/defaultConfig.yaml" // Defaults defined in this resource
yaml configPath // The user-supplied config file

env()
sysProps('genset-server')

require("/ssl", SslConfig) // Map the config to a POJO

ssl sslConfig // HOW DO I GET AN INSTANCE OF that SslConfig POJO HERE?
baseDir BaseDir.find()
}

handlers {
get { // ...
}
}
}

可能有一个解决方案(在后面的 block 中加载 SSL 上下文?)

或者可能只是处理整个事情的更好方法..?

最佳答案

您可以创建一个单独的 ConfigDataBuilder加载配置对象以反序列化您的 ssl 配置。

或者,您可以直接绑定(bind)到 server.ssl。所有 ServerConfig 属性都绑定(bind)到配置中的 server 空间。

关于ssl - 在 Ratpack 中,如何配置从外部文件加载配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49389798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com