Я имею в виду Файл конфигурации входа в систему JAAS . В нем рассказывается о двух способах указания файла конфигурации входа в систему:
- Первый подход, в котором мы устанавливаем
jaas.conf
через виртуальную машину arg java.security.auth.login.config
. - Второй черезФайл свойств безопасности - это файл
java.security
, расположенный в каталоге lib/security
JRE. Во втором подходе мы можем указать несколько файлов.
Есть ли способ указать несколько файлов jaas.conf, используя первый подход настройки VM arg java.security.auth.login.config
? Или, если у вас есть другие предложения по решению проблемы.
Справочная информация: Проблема, с которой я сталкиваюсь: у нас есть два различных типа событий Кафки (скажем, ABC и XYZ ) и соответствующие им jaas.conf
с diffrent Keytab и main . Когда он хочет опубликовать ABC , он устанавливает для свойства java.security.auth.login.config
значение ABC jaas.conf и изменяет значение XYZ на jaas.conf , когда мы хотим опубликовать это.
Однако вышеупомянутая логика имеет некоторую проблему, и она терпит неудачу с org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics
для второго события, которое она пытается опубликовать. Первоначальный взгляд на причину выглядит так, что даже для второго события он пытается использовать jaas.conf
первого.
Stacktrace:
org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics: [XYZ]
at org.springframework.kafka.core.KafkaTemplate$1.onCompletion(KafkaTemplate.java:341)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:827)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:768)
at org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:272)
at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:327)
at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:197)