gpt4 book ai didi

java - 使用 JDK1.6.45 在 Windows 上进行 MongoDB 3.0.0/2/3 Java 驱动程序 Kerberos 身份验证

转载 作者:行者123 更新时间:2023-12-01 11:17:45 27 4
gpt4 key购买 nike

我的 Mongo 服务器应该正确设置,因为我可以使用 GSSAPI 机制与客户端进行查询。

根据文档,Java 驱动程序的 Kerberos 身份验证可以像 credentialList.add(MongoCredential.createGSSAPIredential("people/myhost.com@EXAMPLE.COM"));

我使用的主体

  1. 我使用 Mongo 的企业版客户端进行了测试,它可以工作:使用 Kerberos 对 Mongo 服务器进行身份验证,并且可以针对它进行 find() 。 (数据库测试,主体“people/myhost.com@EXAMPLE.COM”)
  2. 执行kinit,新票证显示在klist中,票证缓存存储在KRB5CCNAME=D:\Kerberos\tickets.txt(环境变量集)下

为了确保读取 krb5.ini/conf,我手动设置了系统属性 java.security.krb5.conf=C:/Windows/krb5.conf

在设置属性javax.security.auth.useSubjectCredsOnly之前,GSSAPIAuthenticator.createSaslClient()捕获GSSException异常:未提供有效凭据(机制级别) :未能找到任何 Kerberos tgt)

设置属性javax.security.auth.useSubjectCredsOnly=false后,InternalStreamConnection.open()捕获可抛出:java.lang.SecurityException: Unable找到登录配置

我在这里真的很困惑。我认为它正在使用 KRB5CCNAME 下指定的票证缓存。如果我使用 jaas 配置,我应该将其指定为什么名称?

Name {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="D:\\Kerberos\\people.keytab"
useTicketCache=false;
};

我用随机名称设置它,它开始提示GSSException:未提供有效的凭据(机制级别:尝试获取新的 INITIATE 凭据失败!(空))

你们能帮我解决这个问题吗?我还可以在这里尝试什么,或者在这种情况下我可以启用更有用和详细的日志吗?

最佳答案

安全错误消息的设计是神秘的:-/

但是有一个很好的“security trace flag ”属性可以帮助您调试 GSSAPI 配置问题:

-Djava.security.debug=gssloginconfig,configfile,configparser,logincontext

关于java - 使用 JDK1.6.45 在 Windows 上进行 MongoDB 3.0.0/2/3 Java 驱动程序 Kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31595381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com