Spring Boot & Kerberos - KrbException: нет поддерживаемых типов по умолчанию для default_tkt_enctypes - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Spring Boot 1.5.6.RELEASE приложение для отправки сообщений на Kafka 0.11 с использованием аутентификации Kerberos.Это мое 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: no supported default etypes for default_tkt_enctypes.

По моему krb5.conf default_tkt_enctypes определяется как aes256-cts-hmac-sha1-96.Я попытался закомментировать эту строку в krb5.conf, но затем я получил sun.security.krb5.Asn1Exception: Identifier doesn't match expected value (906).

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 27 февраля 2019

Проблема заключалась в том, что Политика неограниченной силы JCE не была включена.По умолчанию он отключен.

Решение было раскомментировать crypto.policy=unlimited в $JAVA_HOME/jre/lib/security/java.security.Это также может быть сделано в приложении с Security.setProperty("crypto.policy", "unlimited");.

...