私は MOngoDB + Java 構成に非常に慣れていません。Java アプリケーションからリモート mongodb サーバーからの接続を確立しようとしています。mongotemplate との接続に GSSAPI メカニズムを使用したい。以下のコードは正常に実行されています。以下のコードは私の構成ファイルからのものです。
List<ServerAddress> serverAddresses = new ArrayList<ServerAddress>();
ServerAddress address = new ServerAddress(host, port);
serverAddresses.add(address);
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
MongoCredential credential = MongoCredential.createGSSAPICredential(userName);
credential.withMechanismProperty("SERVICE_NAME", gssapiServiceName);
credential.withMechanismProperty("CANONICALIZE_HOST_NAME", true);
credentials.add(credential);
return new MongoClient(serverAddresses, credentials);
しかし、コードの下で実行しようとすると、例外が発生します
DB db = mongoTemplate.getDb();
Set<String> dbCollections1 = db.getCollectionNames();
例外:
GSSException: 有効な認証情報が提供されていません (メカニズム レベル: Kerberos tgt が見つかりませんでした)。 .java:122)、sun.security.jgss.GSSManagerImpl.getCredentialElement(GSSManagerImpl.java:193)、sun.security.jgss.GSSCredentialImpl.add(GSSCredentialImpl.java:427)、sun.security.jgss.GSSCredentialImpl.(GSSCredentialImpl) .java:62) の sun.security.jgss.GSSManagerImpl.createCredential(GSSManagerImpl.java:154) の com.mongodb.DBPort$GSSAPIAuthenticator.getGSSCredential(DBPort.java:622) の com.mongodb.DBPort$GSSAPIAuthenticator.createSaslClient( DBPort.java:593) com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:895) で com.com.mongodb.DBPort.checkAuth(DBPort.java:443) の mongodb.DBPort.authenticate(DBPort.java:432) com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) の com.mongodb.DBTCPConnector.call (DBTCPConnector.java:269) com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) で com.mongodb.DB.command(DB.java:320) で com.mongodb.DB.command(DB.java: 299) com.mongodb.DB.command (DB.java:388) で com.mongodb.DBApiLayer.getCollectionNames (DBApiLayer.java:152) で320) com.mongodb.DB.command(DB.java:299) com.mongodb.DB.command(DB.java:388) com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152)320) com.mongodb.DB.command(DB.java:299) com.mongodb.DB.command(DB.java:388) com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152)