小编典典

我应该在哪里为我的Java应用程序存储凭据以访问第三方服务?

java

我应该在哪里为我的Java应用程序存储凭据以访问第三方服务?

凭据不是我的应用程序上每个用户都特定的。它们用于访问我的应用程序正在使用的Web服务。我知道足够多,不可以将它们硬编码到我的应用程序中,但是我在哪里以及如何存储它们呢?我还假设它们将需要加密。


阅读 296

收藏
2020-11-26

共1个答案

小编典典

以@Zildyan的答案,评论和对其他答案的引用为基础。

有几个选项 ,其中 存储:

  • 数据库
  • 属性文件
  • 常数(硬编码)
  • 文件系统(远离应用程序)

至于 如何 存储:

取决于灵敏度。凭证可以以纯文本格式存储(低灵敏度),也可以加密(高灵敏度)。


还应注意,结合使用加密和将凭证与源分开使用,将会限制对凭证的内部访问。

一些例子

  • 可以将以纯文本格式存储的密码添加到源代码管理中,并由有权访问该源代码管理的任何人读取。
  • 具有解密代码的加密密码对于任何能够运行该代码的人都是容易获得的。
  • 可以访问服务器的任何人都可以访问存储在服务器上的纯文本文件。
  • 存储在文件系统上的加密文件只能由sys管理员访问,开发人员可以使用解密方法。

存储在数据库中以及有权访问该数据库的人也是如此。

2020-11-26