【问题标题】:Exposed local m2 artifacts from a servlet从 servlet 暴露的本地 m2 工件
【发布时间】:2020-04-02 11:50:44
【问题描述】:

是否有一个 java 库可以帮助在特定端点 servlet 下提供本地 m2 工件?

例如:/maven。

注意:我熟悉 Artifactory 等,但这不是我要寻找的设置。

这更像是我有一个项目,我希望该项目在运行该项目的机器中公开 jar。

【问题讨论】:

  • 您是否正在尝试构建自己的 Maven 存储库?
  • 嗨@JFMeier,不是真的,而是使用已经存在的。我只需要在我的 Web 项目中公开这些工件。这更像是我想将我的项目转换为 maven 存储库。希望这很清楚。谢谢:-)
  • 使用存储库管理器为 Maven/Gradle 项目提供 jar ......不是自制的解决方案......
  • @czetsuya 这似乎是 Nexus 或 Artifactory 的工作。你能解释一下你为什么不找这个吗?
  • @JFMeier。它实际上是我们正在构建的应用程序的一个功能,用于提供保存在本地 m2 中的 jar,因为可以在运行时在应用程序中创建动态类。目前,如果可能的话,我们不想将任何存储库管理器捆绑到应用程序中。

标签: maven servlets jakarta-ee repository


【解决方案1】:

处理文件总是很棘手,您可以轻松地暴露其他目录中的数据,从而被攻击者使用。

对于您的问题:正如 khmarbaise 所写,我也非常推荐使用 Nexus / Artifactory。但是,如果您只需要以“简单的方式”和“安全的方式”公开本地存储库,则可以使用 Apache2 或 Nginx 等 Web 服务器并将您的工件作为静态文件提供。

最后,如果你真的想进入“危险区域”,编写一个返回某个目录中文件的 Servlet 非常容易,你可以这样调用它:http://localhost:8080/FileServlet?file=junit/junit/4.12/junit-4.12.jar 然后使用这个重写过滤器: https://www.ocpsoft.org/rewrite/ 将 URL 更改为例如:http://localhost:8080/repo/junit/junit/4.12/junit-4.12.jar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2020-06-22
    • 2021-06-26
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多