Leiningen提出了#34;试图在没有TLS的情况下使用不安全的HTTP存储库。"但对于哪个依赖?

时间:2018-01-15 17:51:46

标签: clojure leiningen clojars

我正在使用Leiningen在我的Raspberry Pi 3上运行Clojure项目(运行延伸),之前我使用的是2.7.1没有问题,但升级到lein上的最新版本(2.8.1)我现在为某些依赖项(但不是其他依赖项)获取此错误:

Tried to use insecure HTTP repository without TLS

但是,lein并没有告诉我哪些依赖项导致了问题,那么如何找出导致此错误的依赖项?

是否可以针对某些依赖关系禁用此安全功能?我只在家庭网络上运行,所以认为这是可以接受的。

3 个答案:

答案 0 :(得分:3)

在评论之后编辑的答案正确地指出第一种方法只显示了直接的依赖关系。

  1. 生成Maven POM:

    lein pom
    Wrote .../pom.xml
    
  2. 按照Java https://stackoverflow.com/a/3270067/561422的答案,使用Maven依赖插件:

    mvn dependency:purge-local-repository > raw.txt
    
  3. 在编辑器中打开raw.txt并搜索字符串http:,这应该指向正确的轨道。

    例如使用Unix命令行工具:

    不安全的回购(搜索http:):

    grep http: raw.txt
    Downloading from example: http://unsafe.example.org
    

答案 1 :(得分:2)

[注意:这不是我首选的解决方案,但它让我的项目再次运行]。

使用Leiningen 2.7.1,它没有进行如此严格的安全检查。下载地址: https://raw.githubusercontent.com/technomancy/leiningen/2.7.1/bin/lein

答案 2 :(得分:0)

有些难以看出哪个扩展程序会导致问题,因为它们也可以包含其他代码。

您仍然可以下载扩展程序。

来自lein FAQ; 这是非常不安全的,并让你暴露于轻微执行的中间人攻击。在极少数情况下,您不关心运行项目的计算机的安全性,您可以通过将其置于project.clj文件的顶部来重新启用对不受保护的存储库的支持:

;; allow insecure downloads
(require 'cemerick.pomegranate.aether)
(cemerick.pomegranate.aether/register-wagon-factory!
 "http" #(org.apache.maven.wagon.providers.http.HttpWagon.))

对我而言,这项工作涉及几个未更新的旧项目。在日志中,您可以轻松跟踪通过http下载的软件包。

所以这回答了:"是否可以禁用安全性"来自OP的特征问题。

另一个问题似乎已经在StackOverflow上得到了答案。 Display complete dependency tree with Leiningen