Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 弹簧靴;Kerberos-KrbException:不支持默认类型的默认etype_Spring Boot_Apache Kafka_Kerberos - Fatal编程技术网

Spring boot 弹簧靴;Kerberos-KrbException:不支持默认类型的默认etype

Spring boot 弹簧靴;Kerberos-KrbException:不支持默认类型的默认etype,spring-boot,apache-kafka,kerberos,Spring Boot,Apache Kafka,Kerberos,我正在使用Spring Boot 1.5.6。发布应用程序,使用Kerberos身份验证将消息发送到Kafka 0.11。 这是我的kafka jaas.conf: KafkaClient{ com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true useTicketCache=true keyTab="/home/tomi/user-matXp.com.keytab"

我正在使用Spring Boot 1.5.6。发布应用程序,使用Kerberos身份验证将消息发送到Kafka 0.11。 这是我的
kafka jaas.conf

KafkaClient{
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  useTicketCache=true
  keyTab="/home/tomi/user-matXp.com.keytab"
  principal="user/matXp.com@COM";
};
application.yml

spring:
  kafka:
    bootstrap-servers: "kafka-server.com:9092"
    producer:
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
    properties:
      security.protocol: SASL_SSL
      sasl.mechanism: GSSAPI
      sasl.kerberos.service.name: kafka
我启动的应用程序如下:

-java -jar -Djava.security.auth.login.config=/home/tomi/kafka-jaas.conf
-Djava.security.krb5.conf=/home/tomi/krb5.conf 
kafka-0.0.1-SNAPSHOT.jar &> output.log&
尝试发送消息时,我得到
sun.security.krb5.KrbException:不支持默认类型的默认etype

在我的
krb5.conf
中,将
默认类型定义为
aes256-cts-hmac-sha1-96
。 我试图在krb5.conf中注释掉该行,但随后我得到了
sun.security.krb5.Asn1Exception:标识符与预期值(906)不匹配


有什么办法可以解决这个问题吗?

问题是没有包括JCE无限强度策略。默认情况下它是禁用的

解决方案是在
$JAVA\u HOME/jre/lib/security/JAVA.security
中取消注释
crypto.policy=unlimited

这也可以通过
Security.setProperty(“crypto.policy”,“unlimited”)在应用程序中实现

我很确定我能帮你解决这个问题。您是否仍然拥有用于创建keytab的命令语法?如果是这样的话,请将其作为编辑发布到您的问题中。Kerberos和Kafka位于不同的系统中,因此我们没有创建密钥表。我已经发布了解决方案。Tnx