用变量替换 Eclipse 中的 API 密码[重复]

问题描述 投票:0回答:1

对此不熟悉,所以请保持简单的答案,就像你在教孩子一样。

  • 我有一个在 Eclipse 中使用 Maven/Cucumber/Karate 的 API 测试项目。
  • 项目存储在GIT仓库中,密码安全是必须的。
  • Eclipse 中的功能文件有多个用于测试目的的 API 调用,所有内容都是纯文本。
  • 每个API调用都有一个“USERNAME”:“名称”,“PASSWORD”:“密码”用于API URL授权。

= Q1: USERNAME 和 PASSWORD 值可以都替换为局部变量吗?

= Q2:如果是的话,变量在Eclipse中定义在哪里?

java eclipse karate
1个回答
1
投票

当然。以各种方式。举例来说,假设您正在与之交互的 API 称为“twotter”。

在属性文件中

  1. 制作一个文件。大概是
    twotter-auth.properties
    。放:
username: foobar
password: correct battery horse staple

在里面。

  1. __将其添加到
    .gitignore
    - 非常重要。编辑
    .gitignore
    文件(如果尚不存在则创建它)并添加:
/twotter-auth.properties

对它。该文件应与twotter-auth 文件位于同一目录中。这可以确保它不会被签入版本控制。

  1. 在java代码中,使用
    java.util.Properties
    类来读取它。

主题的变化:有无数的“属性文件”样式库 - JSON、YAML、TOML 等等。选你喜欢的吧。

参数

您还可以将用户名/密码作为命令行参数传递 - 它们将到达

args
中的
public static void main(String[] args) {
。在您的主要方法中,将它们保存在某个位置,以便您的 API 客户端可以访问它们。然后,在 Eclipse 中,单击错误图标旁边的箭头,从显示的弹出菜单中选择“调试配置...”,从左侧列表中选择您的应用程序(或单击“新配置”)按钮,它是该对话框中按钮栏上最左边的一个,然后选择一个主类)。在“参数”选项卡中的“程序参数”框中,键入您想要的任何内容。

虚拟机属性

非常相似,但您可以传递 VM 系统变量,而不是作为程序参数。在与“args”选择相同的位置(调试,选项卡“程序参数”),有一个用于 VM args 的文本框。您可以输入类似以下内容:

-Dtwotter.username=foobar "-Dtwotter.password=correct battery horse staple"

在 Java 代码中,您可以调用

System.getProperty("twotter.username")
来访问这些。请注意,您可以在“常用”选项卡下的“另存为”部分中选择“共享文件”,这会在您的项目中创建一个
targetname.launch
文件。该文件将包含所有这些信息,因此除非您
.gitignore
它,否则您可能会签入该信息,在这种情况下,您刚刚签入了用户名/密码数据。保持它打开
local
,尽管现在你需要向其他人解释如何制作这个东西(而如果你将它保存为共享文件,你可以签入它,现在每个也使用 eclipse 的人都会得到这个运行目标,所有配置正确安装,开箱即用,这很好)。

环境变量

您还可以创建系统(如您的操作系统:Windows、Linux 等)变量。 JAVA_HOME 和 PATH 存在相同的位置。您可以使用

System.getenv
从 Java 代码中读取这些内容。

© www.soinside.com 2019 - 2024. All rights reserved.