【问题标题】:How to read *.war manifest file in GWT如何在 GWT 中读取 *.war 清单文件
【发布时间】:2019-01-14 10:17:23
【问题描述】:

我有一个由 Maven 使用 gwt-maven-pluginma​​ven-war-plugin 构建的 .war 文件。在 .war 清单 META-INF/MANIFEST.MF 我有描述其依赖项的 Web 应用程序的工件 ID 的条目。我想阅读这些条目以在 HTML 中向用户展示它们。如何在 GWT 中读取清单文件?在桌面应用程序中很简单:

Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/MANIFEST.MF")

this.getClass().getResourceAsStream("META-INF/MANIFEST.MF")

但我不能在 GWT 中这样做,因为 JRE 仿真库中不存在该方法

我也尝试过使用 RequestBuilder

new RequestBuilder(RequestBuilder.GET, "META-INF/MANIFEST.MF")
       .sendRequest("", new RequestCallback() {
             @Override
             public void onResponseReceived(Request req, Response resp) {
                 String text = resp.getText();
             }

             @Override
             public void onError(Request res, Throwable throwable) {
                 result.put("Err","Err");
              }
         });

但它也不起作用(错误 404 - 未找到)。

【问题讨论】:

    标签: maven gwt


    【解决方案1】:

    用户的网络浏览器无法读取 META-INF 或 WEB-INF 中的任何内容 - 这使得下载战争如何运作的内部信息和查找秘密(包含密码或其他详细信息的配置文件)变得太容易了或获取源代码并对其进行逆向工程。

    要实现这样的目标,您需要编写一个提供该文件内容的 servlet。这可能会从您项目中的两个示例行中的任何一个开始。

    这并不是一个真正的 GWT 问题 - GWT 应用程序被编译为 JS,而不是 jar 或战争,在您的情况下它恰好保存在 .war 存档中。

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 2018-06-10
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多