gpt4 book ai didi

soap - 带有客户端 ssl 证书的 Elixir SOAP (detergentex)

转载 作者:行者123 更新时间:2023-12-02 01:24:49 26 4
gpt4 key购买 nike

我们(我自己和我的开发团队)对 Elixir 还比较陌生,尤其是在成功地将我们的大部分 API 服务移植到 Elixir 并取得了不错的成果之后。

但是,我们在连接到需要 SSL 客户端证书的上游 SOAP Web 服务时遇到了问题。包装库 detergentex 似乎是唯一真正可用的用于使用 Web 服务的库,但是我找不到在请求中使用客户端 SSL 证书的方法,这是我们的服务提供商所要求的。

我们目前在 Python 中使用 SUDS 来实现这一点,但是移植到 Elixir 将为这些特定请求的并行化带来巨大的好处。

如有任何帮助,我们将不胜感激!

最佳答案

似乎 detergenex 本身不支持它,但它包装的 Erlang 库,detergent , 看起来它会支持它。

函数detergent:call can be called with an optional fourth argument , 一个 #call_opts{}记录。此记录在 detergent.hrl 中定义并包含一个名为 http_client_options 的字段.在 detergent.erl 中,这条记录最终被传递给两个 HTTP 客户端之一:它选择 ibrowse如果可用,否则使用 httpc来自内置的 inets 应用程序。

对于 httpc,您可以将 SSL 选项作为 {ssl, [...]} 传递http_client_options 中的元组,而 ibrowse 期望元组为 {ssl_options, [...]} ,因此您需要知道将使用哪种 HTTP 客户端洗涤剂才能传递正确的选项。

SSL 选项在 ssl man page 中描述。 .要设置客户端证书,请传递选项 {certfile, "/path/to/client.cert"}{keyfile, "/path/to/client.key"} .如果证书和私钥在同一个文件中,可以省略keyfile选项。

向 detergenex 添加对此的支持应该不难,或者您可以直接从 Elixir 调用 detergent。

关于soap - 带有客户端 ssl 证书的 Elixir SOAP (detergentex),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743050/

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