【发布时间】:2020-01-02 10:12:03
【问题描述】:
我在 tomcat (v8) 中部署了一个 Spring Boot War(微服务)。微服务端点在 API 网关中作为 API 公开。
微服务会调用底层 HBase 数据源获取数据集,调用 HBase 前需要进行 kerberos 认证。
我的疑问是:我们是否需要从微服务代码中显式处理才能启用此 kerberos 身份验证?还是将 jass.conf 放在部署微服务战争的 tomcat conf 目录中就足够了? jass.conf 配置如下所示: https://examples.javacodegeeks.com/enterprise-java/tomcat/apache-tomcat-kerberos-authentication-tutorial/
我的 jass.conf 文件内容:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
principal=”HTTP/MYDOMAIN.COM” useKeyTab=true
keyTab=”/opt/tomcat_server/tomcat_server/tomcat/conf/krb5.keytab”
doNotPrompt=true storeKey=true debug=true;
};
com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule required
principal=”HTTP/MYDOMAIN.COM” useKeyTab=true
keyTab=”/opt/tomcat_server/tomcat_server/tomcat/conf/krb5.keytab”
doNotPrompt=true storeKey=true debug=true;
};
当我将我的 jass.conf 放在 tomcat/conf 目录中时,在 tomcat 中出现以下错误,而对微服务代码没有任何更改:
INFO org.apache.zookeeper.ClientCnxn- Opening socket connection to server
<server name>. Will not attempt to authenticate using SASL (unknown error)
【问题讨论】:
标签: spring-boot hbase kerberos tomcat8