当前位置: 首页 > 面试题库 >

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

钱志
2023-03-14
问题内容

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

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


问题答案:

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

有几个选项 ,其中 存储:

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

至于 如何 存储:

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

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

一些例子

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

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



 类似资料:
  • 半绿拇指在这里。我希望下载一些Apache Commons和Google Guava库以在Eclipse中使用。多个 Q 理想情况下,我希望它位于所有Mac / * NIX系统通用的目录中。然而,这个Q 那么我应该把第三方Java库放在哪里呢?

  • 我知道JVM使用属性在运行时定位本机库。我试图用本机依赖项位置配置Eclipse。 但是在中有许多地方我可以指定位置。 源选项卡->本机库位置 null null 如果它们都指向同一个目的地,为什么会有这么多配置项? 到目前为止,我的猜测是,Eclipse的设计者希望这种方式能够帮助程序员更有逻辑地组织他们的本机库。

  • 我正在使用vue.js和vuex开发一个应用程序,它使用JWT令牌对JSON API服务器进行身份验证。所以我想知道存放JWT代币的最佳做法是什么? 如果我将其存储在vuex商店中,则页面刷新后它会丢失,因此用户需要再次登录,这不是很方便。 如果我将其存储在浏览器的本地存储中,它会在下次登录之前被弃用,然后假设身份验证令牌的组件会混淆。我不知道如何处理这个问题。 感谢你对此的暗示。

  • 问题内容: 首先,我知道如何构建Java应用程序。但是我总是对在哪里上课感到困惑。支持以严格面向领域的方式组织软件包的支持者,其他支持者则按层分开。 我本人一直有问题 命名, 放置 所以, 您将域特定的常量放在哪里(以及此类的最佳名称是什么)? 您在哪里放置基础结构和领域特定的东西的类(例如,我有一个FileStorageStrategy类,该文件将文件存储在数据库中,或者存储在数据库中)? 在哪

  • 我试图从我的flutter启动第三方应用,但我没有任何进展。在这种情况下,我试图通过单击Flutter中凸起的按钮打开应用程序“Amazon Alexa”。有人能帮我吗? 我试图使用url_launcher,但它无法与第三方应用程序配合使用。

  • 问题内容: 我使用的是Ant + Ivy,我公司最近为我们自己的私有图书馆设置了Nexus服务器。Ivy可以使用ibilio解析器和m2compatible = true从Nexus服务器获取依赖关系,但是我必须将凭据放入ivysettings.xml文件中。 不同的开发人员应该如何存储其凭据? 是否不应该在vcs中提交ivysettings.xml文件? 我真的不想以纯文本形式存储密码。 问题答