使用Java进行Cassandra Kerberos身份验证时出现配置错误



我正试图通过Kerberos票证缓存连接到Cassandra集群,并使用以下配置集-

java -Dcassaandra.ip.address=<IPaddress> 
-Djava.security.auth.login.config=kerb-client.conf 
-Dsun.security.krb5.debug=true 
-Djavax.security.auth.useSubjectCredsOnly=false 
-Djava.security.krb5.conf=krb5.conf -jar test-kerberos.jar

路缘石客户端conf:CassandraJavaClient{com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true ticketCache=cacheFile principle="abc@abc.net";};

我得到以下错误-

Unexpected error during transport initialization (java.lang.SecurityException: java.io.IOException: Configuration Error:
Line 3: expected [option value])
at com.datastax.driver.core.Connection$2.apply(Connection.java:205)
at com.datastax.driver.core.Connection$2.apply(Connection.java:191)

似乎缺少一些配置,但我无法确定根本原因。请告知纠正步骤。

Java驱动程序需要配置一个自定义验证器,以便使用Kerberos进行身份验证。

Instacluster为Cassandra提供了一个开源的Kerberos验证器,可与Java驱动程序一起使用。详细信息和代码可在此处获取:

  • Cassandra Kerberos验证器
  • Java驱动程序Kerberos插件

干杯!

感谢您的回复。我已经在使用com.datastax.cassandra:casandra驱动程序核心:3.5.1。下面是我的示例代码片段。

Cluster cluster = Cluster.builder()
.addContactPoints(ipAddress)
.withAuthProvider(KerberosAuthProvider.builder().withSaslProperties(saslProperties).build())
.withSSL()
.build();
cluster.connect();

更改ticketCache文件名后,问题得到了解决。我似乎引用了不正确的缓存文件。现在,我似乎得到了其他东西-没有提供有效的凭据例外。但我已经摆脱了基本的配置错误。

相关内容

  • 没有找到相关文章

最新更新