![](/img/trans.png)
[英](MongoDB Java Driver (3.0.0-rc0)) UnknownHostException & Authentication
[英]MongoDB 3.0.0/2/3 Java Driver Kerberos Authentication on Windows using JDK1.6.45
我的Mongo服務器應正確設置,因為我可以通過客戶端使用GSSAPI機制對其進行查詢。
根據文檔,Java驅動程序的Kerberos身份驗證可以像credentialList.add(MongoCredential.createGSSAPICredential("people/myhost.com@EXAMPLE.COM"));
一樣簡單credentialList.add(MongoCredential.createGSSAPICredential("people/myhost.com@EXAMPLE.COM"));
我用的校長
為了確保讀取krb5.ini / conf,我手動設置系統屬性java.security.krb5.conf = C:/Windows/krb5.conf
在設置屬性javax.security.auth.useSubjectCredsOnly
之前, GSSAPIAuthenticator.createSaslClient()
異常GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)
。
設置屬性javax.security.auth.useSubjectCredsOnly=false
,捕獲了InternalStreamConnection.open()
拋出: java.lang.SecurityException: Unable to locate a login configuration
我真的很困惑。 我以為它使用的是KRB5CCNAME下指定的票證緩存。 如果我使用jaas配置,應將其分配給哪個名稱?
Name {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="D:\\Kerberos\\people.keytab"
useTicketCache=false;
};
我給它設置了一個隨機名稱,它開始抱怨GSSException: No valid credentials provided (Mechanism level: Attempt to obtain new INITIATE credentials failed! (null))
。
你們可以幫我嗎? 在這種情況下,我還能嘗試什么呢?還是可以使用更有用和詳細的日志?
安全錯誤消息是設計隱秘的:-/
但是有一個不錯的“ 安全跟蹤標志 ”屬性可以幫助您調試GSSAPI配置問題:
-Djava.security.debug=gssloginconfig,configfile,configparser,logincontext
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.