【问题标题】:Access AWS credentials file in WAR在 WAR 中访问 AWS 凭证文件
【发布时间】:2014-04-03 14:42:50
【问题描述】:

我正在制作一个使用 Spring、Maven 和 AWS-SDK-Java 的 Java 应用程序。为了使 AWS SDK 工作,我必须将 AWSCredentials.properties 文件放在“MyProject/src/main/resources”文件夹中。

到目前为止一切都很好。然后我必须创建一个.war 文件。为此,我使用mvn install 命令并瞧瞧。

现在在创建的.war 中,我要访问的文件位于“/WEB-INF/classes/”文件夹中,我需要阅读它。

如何在战争中访问此文件以便读取其内容?我已经尝试过ServeltContext,但到目前为止我没有尝试过!

【问题讨论】:

  • 查看war文件(在*nix OS上)中的内容的快速方法是使用tar + grep。例如,这个命令将显示你战争中的所有属性文件: tar tvf | grep 属性
  • .war 是一个 webapp 存档。编译好的源码一般会到/WEB-INF/classes,所以你应该在/WEB-INF/classes/main/resources中搜索文件
  • 好了,现在我知道文件在哪里了!如何告诉我 webapp 阅读它?我现在就更新这个问题!

标签: java spring maven amazon-web-services


【解决方案1】:

在代码包(war)中保留凭证通常不是一个好习惯。相反,我建议您使用IAM Roles

这将使您可以轻松地将代码从一个 AWS 账户移动到另一个账户(例如开发环境到生产环境)。由于代码将提交给可供许多人访问的版本控制系统,因此从安全角度来看,使用 IAM 角色也很好。

【讨论】:

    【解决方案2】:

    我找到了一种方法。我可以使用以下方式访问该文件:

    InputStream inputStream = getClass().getClassLoader().getResourceAsStream("/resources/email/file.txt");

    正如本次讨论中所解释的: Reading a text file in war archive

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-30
      • 2015-07-09
      • 2016-09-25
      • 2018-01-31
      • 2019-03-12
      • 2016-08-17
      • 2015-02-25
      • 2013-06-28
      相关资源
      最近更新 更多