使用凭证的 Spring Cloud Config 和 Github 存储库

Tar*_*nde 2 spring-boot spring-cloud

我正在尝试访问位于企业防火墙(开放 VPN)后面的 Github 存储库。我尝试使用我的用户名和密码进行访问,但出现以下异常。有关如何使用 Spring Cloud 访问存储库的任何建议。

应用程序属性:

spring.cloud.config.server.git.uri=https://github.com/company-repo/abc.git
spring.cloud.config.server.git.username=tarun
spring.cloud.config.server.git.password=xxxxx
spring.cloud.config.server.git.ignore-local-ssh-settings=true
Run Code Online (Sandbox Code Playgroud)

例外:

Error occured cloning to base directory. org.eclipse.jgit.api.errors.TransportException:
 https://github.com/company-repo/abc.git: not authorized
Run Code Online (Sandbox Code Playgroud)

小智 8

不要在app.prop文件中使用您的 GitHub 密码...您将收到“未授权”异常。相反,生成一个访问令牌

创建个人访问令牌

您应该通过命令行或 API 创建一个个人访问令牌来代替密码。

使用 GitHub API 或命令行时,个人访问令牌 (PAT) 是使用密码进行 GitHub 身份验证的替代方法。

如果您想要使用 PAT 访问使用 SAML SSO 的组织拥有的资源,您必须授权 PAT。有关详细信息,请参阅“关于使用 SAML 单点登录进行身份验证”和“授权个人访问令牌以用于 SAML 单点登录”。

作为安全预防措施,GitHub 会自动删除一年内未使用的个人访问令牌。

创建令牌

  • 如果尚未验证您的电子邮件地址,请验证它。

  • 在任意页面的右上角,单击您的个人资料照片,然后单击“设置”。

  • 用户栏中的设置图标 在左侧边栏中,单击开发人员设置。

  • 在左侧边栏中,单击个人访问令牌。

  • 单击生成新令牌。

  • 为您的令牌指定一个描述性名称。

  • 选择您想要授予此令牌的范围或权限。要使用您的令牌从命令行访问存储库,请选择 repo。

  • 单击生成令牌。

  • 单击将令牌复制到剪贴板。出于安全原因,离开页面后,您将无法再次看到令牌。

警告:将您的令牌视为密码并保密。使用 API 时,使用令牌作为环境变量,而不是将它们硬编码到程序中。

要使用您的令牌对使用 SAML SSO 的组织进行身份验证,请授权该令牌用于 SAML 单点登录组织。

在命令行上使用令牌

获得令牌后,您可以在通过 HTTPS 执行 Git 操作时输入该令牌而不是密码。

例如,在命令行上您可以输入以下内容:

$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
Run Code Online (Sandbox Code Playgroud)

个人访问令牌只能用于 HTTPS Git 操作。如果您的存储库使用 SSH 远程 URL,则需要将远程从 SSH 切换为 HTTPS。

如果系统未提示您输入用户名和密码,则您的凭据可能会缓存在您的计算机上。您可以更新钥匙串中的凭据,以使用令牌替换旧密码。


Tar*_*nde 5

我让它工作的方式是:

  1. 在 Github 存储库上生成访问令牌并为其提供读取和管理权限
  2. 使用Token作为密码

凭证可以作为 Secrets 保存在 Kubernetes 中或保存在 Vault 中。希望这可以帮助。