具有Kerberos安全性的Cassandra Java驱动程序

具有Kerberos安全性的Cassandra Java驱动程序,cassandra,datastax-enterprise,datastax-java-driver,cassandra-jdbc,Cassandra,Datastax Enterprise,Datastax Java Driver,Cassandra Jdbc,我正在尝试从Datastax java驱动程序连接到启用kerberos的cassandra安全群集 示例连接代码: cluster = Cluster.builder().addContactPoint(node).withCredentials("username","password").build(); Metadata metadata = cluster.getMetadata(); System.out.printf("Connected to cluste

我正在尝试从Datastax java驱动程序连接到启用kerberos的cassandra安全群集

示例连接代码:

    cluster = Cluster.builder().addContactPoint(node).withCredentials("username","password").build();
    Metadata metadata = cluster.getMetadata();
    System.out.printf("Connected to cluster: %s\n",
            metadata.getClusterName());
    for (Host host : metadata.getAllHosts()) {
        System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",
                host.getDatacenter(), host.getAddress(), host.getRack());

    }
    session = cluster.connect();
我收到以下错误:

线程“main”com.datastax.driver.core.exceptions.AuthenticationException:主机上的身份验证错误/x.x.x.x:java.lang.RuntimeException:javax.security.auth.login.login异常:无法从用户获取密码

at com.datastax.driver.core.Connection.waitForSaslCompletion(Connection.java:204)
at com.datastax.driver.core.Connection.initializeTransport(Connection.java:170)
at com.datastax.driver.core.Connection.<init>(Connection.java:132)
at com.datastax.driver.core.Connection.<init>(Connection.java:59)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:442)
at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:205)
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:168)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:81)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:662)
at com.datastax.driver.core.Cluster$Manager.access$100(Cluster.java:604)
at com.datastax.driver.core.Cluster.<init>(Cluster.java:69)
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:96)
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:585)
at com.datastax.training.SimpleClient.connect(SimpleClient.java:32)
at com.datastax.training.SimpleClient.main(SimpleClient.java:148)
位于com.datasax.driver.core.Connection.waitForSaslCompletion(Connection.java:204)
位于com.datastax.driver.core.Connection.initializeTransport(Connection.java:170)
位于com.datastax.driver.core.Connection.(Connection.java:132)
位于com.datastax.driver.core.Connection.(Connection.java:59)
位于com.datastax.driver.core.Connection$Factory.open(Connection.java:442)
位于com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:205)
位于com.datastax.driver.core.ControlConnection.ReconnectionInternal(ControlConnection.java:168)
位于com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:81)
位于com.datastax.driver.core.Cluster$Manager.init(Cluster.java:662)
位于com.datastax.driver.core.Cluster$Manager.access$100(Cluster.java:604)
位于com.datastax.driver.core.Cluster.(Cluster.java:69)
位于com.datastax.driver.core.Cluster.buildFrom(Cluster.java:96)
位于com.datastax.driver.core.Cluster$Builder.build(Cluster.java:585)
位于com.datastax.training.SimpleClient.connect(SimpleClient.java:32)
位于com.datastax.training.SimpleClient.main(SimpleClient.java:148)

Am使用DSE版本3.1.3。Java驱动程序1.0.3-dse。

在您的代码示例中,您使用用户名/密码凭据进行身份验证,这在Kerberos中不起作用。这篇博文包含了有关将java驱动程序与安全DSE集群一起使用的详细信息:

在您的代码示例中,您正在使用用户名/密码凭据进行身份验证,这在Kerberos中不起作用。这篇博文包含了有关在安全DSE集群中使用java驱动程序的详细信息:

我没有发现任何错误,上面写着“获取服务器标识主题时出错”。这些是我尝试连接/var/log/krb5kdc.log Oct 18 16:32:37 krb5kdc[3112](信息):AS_REQ(3 etypes{3 1 16})x.x.x.x:NEEDED_PREAUTH:dse//REALM COM for krbtgt/REALM时的服务器日志。COM@REALM.COM,需要额外的预验证10月18日16:32:37 krb5kdc[3112](信息):AS_REQ(3个etype{3 1 16})x.x.x.x:ISSUE:authtime 1382113957,etypes{rep=16 tkt=16 ses=16},dse//REALM.COM for krbtgt/REALM。COM@REALM.COM这些是Eclipse错误:线程“主”COM.DATASAX.DRUV.COR.Exist.NoSuffAsababExeExchange中的异常:尝试查询的所有主机都失败了(尝试:/x.x.x.Xi没有发现任何错误的说法)“获取服务器标识的主题时出错”。这些是我尝试连接/var/log/krb5kdc.log Oct 18 16:32:37 krb5kdc[3112](信息):AS_REQ(3 etypes{3 1 16})x.x.x.x:NEEDED_PREAUTH:dse//REALM COM for krbtgt/REALM时的服务器日志。COM@REALM.COM,需要额外的预认证10月18日16:32:37 krb5kdc[3112](信息):如要求(3 etypes{3 1 16})x.x.x.x:ISSUE:authtime 1382113957,etypes{rep=16 tkt=16 ses=16},dse//REALM.COM for krbtgt/REALM。COM@REALM.COM以下是eclipse错误:线程“main”com.datastax.driver.core.exceptions.NoHostAvailableException中出现异常:所有尝试查询的主机均失败(已尝试):/x.x.x.x