我有一个托管在 IBM Websphere Liberty Core 上的 Kafka 生产者 Web 应用程序。远程 Kafka 主题通过 Kerberos 得到保护。

我们使用的是 IBM jdk,所以 jaas 类名是

com.ibm.security.auth.module.Krb5LoginModule 

JAAS 配置需要以下选项

KafkaClient { 
     com.ibm.security.auth.module.Krb5LoginModule required 
     useKeyTab=true 
     keyTab="/etc/security/keytabs/storm.service.keytab" 
     storeKey=true 
     useTicketCache=false 
     serviceName="kafka" 
     principal="storm@EXAMPLE.COM"; 
    }; 

不幸的是 com.ibm.security.auth.module.Krb5LoginModule 类只接受这些选项

 Kerberos options 
       principal=principalName 
       credsType=initiator|acceptor|both (default=initiator) 
       forwardable=true|false (default=false) 
       proxiable=true|false (default=false) 
       renewable=true|false (default=false) 
       useCcache=URL 
       useKeytab=URL 
       useDefaultCcache=true|false (default=false) 
       useDefaultKeytab=true|false (default=false) 
 
 
 
 JAAS-suggested options: 
       debug=true|false (default=unset, JGSS debug options used) 
       tryFirstPass=true|false (default=false) 
       useFirstPass=true|false (default=false) 
       moduleBanner=true|false (default=false) 

如何使用 Liberty Core 上的 IBM JDK 将服务名称指定为“kafka”?

请您参考如下方法:

Kerberos 服务主体名称包括服务名称:

<serviceName>/<hostname>@KerberosRealmName 

您是否尝试过将其指定为以下内容

principal="kafka/<hostname>@EXAMPLE.COM" 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!