我可以使用autocert进行动态主机策略吗?

问题描述 投票:0回答:1

我正在查看一些使用autocert和go web服务器的示例代码。

hostPolicy实现是否可以通过动态实现,即从数据库中读取列出的主机(因为它们将不断变化)。

m := autocert.Manager{
        Cache:      certcache,
        Prompt:     autocert.AcceptTOS,
        HostPolicy: hostPolicy,
    }

骨架结构对自定义hostPolicy实现的看法是什么?

https://github.com/golang/crypto/blob/master/acme/autocert/autocert.go#L60

是否有返回功能?

go lets-encrypt
1个回答
1
投票

是否必须返回功能?

是的,这是autocert.Manager结构签名的一部分。

Manager.HostPolicy字段是autocert.HostPolicy类型,它实际上是func(ctx context.Context, host string) error类型的函数。

骨架结构对自定义hostPolicy实现的看法是什么?

您只需为HostPolicy字段设置自定义函数,即可实现查询数据库的逻辑。

m := autocert.Manager{
    // ... more fields here
    HostPolicy: func(ctx context.Context, host string) error{
        // implement database calls here
        return nil 
    },
}

根据文档,您应该返回错误以拒绝主机。

© www.soinside.com 2019 - 2024. All rights reserved.