Gradle 和代理:协商身份验证错误:提供的名称无效机制级别:KrbException:无法找到默认领域

问题描述

在尝试执行 MarkLogic 数据中心升级时,我无法让 gradle 从代理后面访问互联网。

我以 root 用户身份执行以下代码

./gradlew hubUpgrade -i

给出输出

Configure project :
Evaluating root project ‘data-hub’ using build file ‘/data-hub/build.gradle’.
NEGOTIATE authentication error: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
Resource missing. [HTTP HEAD: http://developer.marklogic.com/maven2/gradle/plugin/com/marklogic/ml-data-hub/4.3.2/ml-data-hub-4.3.2.pom]
NEGOTIATE authentication error: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
NEGOTIATE authentication error: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
Failed to get resource: HEAD. [HTTP HTTP/1.1 403 Forbidden: http://developer.marklogic.com/maven2/gradle/plugin/com/marklogic/ml-data-hub/4.3.2/ml-data-hub-4.3.2.jar]
Resource missing. [HTTP HEAD: http://developer.marklogic.com/maven2/gradle/plugin/com/marklogic/ml-data-hub/4.3.2/ml-data-hub-4.3.2.pom]
NEGOTIATE authentication error: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
Failed to get resource: HEAD. [HTTP HTTP/1.1 403 Forbidden: http://developer.marklogic.com/maven2/gradle/plugin/com/marklogic/ml-data-hub/4.3.2/ml-data-hub-4.3.2.jar]

FAILURE: Build Failed with an exception.

What went wrong:
org/gradle/api/internal/CollectionCallbackActionDecorator
org.gradle.api.internal.CollectionCallbackActionDecorator

到目前为止我所做的:

在 Redhat 7.6 linux 上运行,安装了 gradle 4.10 并测试它工作正常 按照安装说明设置 gradle。 在 gradle.properties 中设置代理设置 - 见下文:

systemProp.http.proxyHost=< full qualified web proxy address >
systemProp.http.proxyPort=< port >
systemProp.http.proxyUser= <windows_domain>/<windows_username>
systemProp.http.proxyPassword= < pw >
systemProp.http.nonProxyHosts=localhost

systemProp.https.proxyHost=< full qualified web proxy address >
systemProp.https.proxyPort=< port >
systemProp.https.proxyUser=<windows_domain>/<windows_username>
systemProp.https.proxyPassword=< pw >
systemProp.https.nonProxyHosts=localhost

我也试过从命令行使用 -D 参数,但没有任何乐趣。

我已经能够在同一个 linux 用户会话中运行 firefox 并连接到互联网,输入我的用户名和密码,然后就可以正常上网了。

我们正在使用旧版本的 Gradle ( 4.10 ),因为这是我们生产系统上的当前版本,并且不确定使用更高版本的 Gradle 进行升级是否安全,或者更高版本的 Gradle 是否会修复此问题问题。

我尝试了不同的用户名等和 / 和 \ 和引号等组合,但没有工作。

非常感谢任何帮助......

解决方法

这不太可能是 MarkLogic 或 Gradle 问题,更有可能是 Kerberos 无法将您的代理主机解析为 /etc/krb5.conf 配置文件中的有效地址。您需要检查您的 Kerberos 配置是否已设置为根据代理服务器地址为域提供服务。

[domain_realm]
.marklogic.local = MARKLOGIC.LOCAL
ad.marklogic.local = MARKLOGIC.LOCAL
.localdomain = MWCA.LOCALDOMAIN

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...