Leiningen:尝试使用没有TLS的不安全HTTP存储库



我正在尝试完成Enlive教程。

当我尝试在克隆的存储库中lein depslein run时,我遇到了这个问题:

已尝试使用没有TLS的不安全HTTP存储库。

最新版本的 Leiningen 禁用了不安全的依赖项下载。从常见问题解答:

问:我得到了Tried to use insecure HTTP repository without TLS,这是怎么回事?

答:这意味着您的项目已配置为从不使用 TLS 加密的存储库下载依赖项。这是非常不安全的,并且使您面临微不足道的中间人攻击。在极少数情况下,如果您不关心运行项目的计算机的安全性,或者可以确保唯一的 http 流量通过受信任的网络流出,您可以通过将其放在project.clj文件中来重新启用对不安全存储库的支持:

;; never do this
(require 'cemerick.pomegranate.aether)
(cemerick.pomegranate.aether/register-wagon-factory!
"http" #(org.apache.maven.wagon.providers.http.HttpWagon.))

您也可能有一个依赖项,其中包含对不安全存储库的引用,用于检索其自己的依赖项。如果发生这种情况,强烈建议添加一个:exclusion并报告具有执行此操作的依赖项的错误。

覆盖project.clj中不安全的 HTTP 存储库 URL:

如果我在enlive-tutorial/project.clj中覆盖以下存储库 URL,我就可以克隆enlive-tutorial并成功执行lein deps,只需将协议更改为 HTTPS:

:mirrors {"clojure" {:url "https://build.clojure.org/releases/"}
"clojure-snapshots" {:url "https://build.clojure.org/snapshots/"}}

看起来Moustache 是试图通过 HTTP 拉取其依赖项的传递依赖项。

最新更新