首页 > 解决方案 > Spring Cloud Config with Github repo 使用凭证

问题描述

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

应用程序属性:

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

例外:

Error occured cloning to base directory. org.eclipse.jgit.api.errors.TransportException:
 https://github.com/company-repo/abc.git: not authorized

标签: spring-bootspring-cloud

解决方案


不要在app.prop文件中使用您的 GitHub 密码...您将收到Not Authorized 异常。而是生成访问令牌

创建个人访问令牌

您应该通过命令行或 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

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

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


推荐阅读