Gradle Artifactory 插件应该使用纯文本还是加密密码?

Is The Gradle Artifactory Plugin Supposed To Use A Plain Text Or Encrypted Password?

当我在 Artifactory 中单击“设置我”时,会生成一个 gradle.properties 文件,如下所示:

artifactory_user=my_artifactory_user
artifactory_password=WAklvc9LXWDsVcoVILbKyebkQG5uBxos6rIrmi8HjMTB3xicLJbxstmEQwRwIoGN6pBnK3T91I
artifactory_contextUrl=https://artifactory.company.com/artifactory

但是,当我 运行 ./gradlew artifactoryDeploy 我得到这个错误:

> Task :artifactoryDeploy FAILED    
Could not build the build-info object.    
org.jfrog.build.util.VersionException: Error occurred while requesting version information:  Response message: {    
  "errors" : [ {    
    "status" : 401,    
    "message" : "Bad credentials"    
  } ]    
}

...
stacktrace
...

FAILURE: Build failed with an exception.
* What went wrong:    
Execution failed for task ':artifactoryDeploy'.    
> java.io.IOException: Could not publish build-info: Error occurred while requesting version information:  Response message: {    
    "errors" : [ {    
      "status" : 401,    
      "message" : "Bad credentials"    
    } ]    
  }

我很困惑,因为 Artifactory 正在生成此加密密码,但文档使用纯文本示例。 https://www.jfrog.com/confluence/display/JFROG/Working+With+Gradle#WorkingwithGradle-ConfiguringGradle

artifactory_password 是应该像这样加密还是应该是纯文本?

artifactory_password 参数可用于:

  • 明文密码
  • 加密密码
  • API键

如果您收到错误凭据错误,可能的原因之一是在将 Artifactory 配置为 Password Encryption Policy 设置为不受支持(不考虑加密密码)时使用加密密码。
您可以做一些事情来调试这个问题:

  • 在管理 -> 安全 -> 设置中验证密码加密策略是否设置为支持或必需(需要管理员)
  • 通过尝试使用 cURL 等客户端调用 REST API 来测试用户和密码。确保您使用 API 方法,该方法需要经过身份验证的用户