我正在尝试使用MongoDB Java驱动程序连接到Kerberos。但是,登录上下文抛出以下错误Message stream modified (41)
。
String loginContextName = "testlogincontext";
KerbCallbackHandler kcbh = new KerbCallbackHandler(username, password);
Subject subject = new Subject();
context = new LoginContext(loginContextName, subject, kcbh);
context.login();
KerbCallbackHandler
是用于获取Kerberos的CallBackHandler的包装器。
我用于连接到MongoDB的shell命令成功完成,如下所示:
mongo --host hostname.mysite.com --gssapiHostName gssapihostname.mysite.com -authenticationMechanism=GSSAPI --authenticationDatabase='$external' --username mongodbuser1/hostname.mysite.com@MYSITE.COM
没有--gssapiHostName标志,该连接将不起作用。有什么方法可以通过MongoDB Java驱动程序传递GssAPIHostname,以便此连接可以成功?