【问题标题】:Leiningen: unable to use "insecure" proxy repositoryLeiningen:无法使用“不安全”的代理存储库
【发布时间】:2018-06-04 17:27:54
【问题描述】:

我正在我的本地网络中运行一个 Nexus 存储库,我试图让 Leiningen (2.8.1) 使用它。但是我遇到了 Leiningen 拒绝通过非 HTTPS 连接进行连接的问题。

我的profiles.clj 看起来像这样:

{:user
 {
  :mirrors {#".+" {:name "superbia"
                   :url "http://localhost:8081/repository/maven-public"}}
  }
}

这给了我这个错误:

% lein
Tried to use insecure HTTP repository without TLS.
This is almost certainly a mistake; however in rare cases where it's
intentional please see `lein help faq` for details.

查看那个 FAQ 条目时,它告诉我向我的 project.clj 添加东西,但我不能这样做,因为它基本上拒绝做任何事情,更不用说创建项目了。

甚至请求版本中断:

% lein -v
Tried to use insecure HTTP repository without TLS.
This is almost certainly a mistake; however in rare cases where it's
intentional please see `lein help faq` for details.

是否有任何方法可以禁用或绕过此行为而无需降级 Leiningen(这是我上次所做的)或重新配置代理存储库?

【问题讨论】:

  • 您可能希望在 Clojure 邮件列表中提出这个问题:groups.google.com/forum/?hl=en#!forum/clojure
  • 你安装了 docker 吗?如果是这样,我会建议使用它来解决此问题的方法,否则我会继续寻找
  • 如何先从您的个人资料中删除有问题的 URL,然后创建项目(我假设您要使用 lein new),最后重新添加有问题的 URL 和 HTTP 解决方法?
  • @ArthurUlfeldt 涉及的一台机器可以,另一台没有
  • @Svante 这可能是一种解决方法,但是,我将不得不处理代理设置等问题。我更喜欢结构性解决方案。

标签: clojure leiningen


【解决方案1】:

看看:the leiningen FAQ

问:我尝试在没有 TLS 的情况下使用不安全的 HTTP 存储库,什么是 那大约? A:这意味着您的项目已配置为下载 来自不使用 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 并报告 执行此操作的依赖项的错误。

无论lein 是否运行,您都可以随时编辑project.clj - 只需使用您喜欢的编辑器来编辑文件。还有一个每个用户 $HOME./lein/profiles.clj - 您可以在此文件中添加上面的行。

或者,您可以将 lein 降级(到 2.7.1 版),或者:

  • lein upgrade 2.7.1
  • 编辑顶部的˜/bin/lein,您应该会看到export LEIN_VERSION="2.7.1"

【讨论】:

  • 在这个问题中,我明确指出了常见问题解答以及为什么它不适用,我还表示我希望在过去这样做之后不必降级。
  • @BertGeens 在您的问题中说这不适用,但是您不需要 lein 来编辑文件。编辑您的 project.cljprofiles.clj 以添加常见问题解答中提到的行。
  • 恐怕我不知道在我的 $HOME/.lein/profiles.clj 中的哪个位置添加它。当我启动 Leiningen 时,只需将其添加到顶层就会导致 ClassCastException,这并不完全出乎意料,因为据我所知,该文件应该包含一个地图。
猜你喜欢
  • 1970-01-01
  • 2021-09-27
  • 2017-09-01
  • 1970-01-01
  • 2019-11-03
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多