首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么getKerberosTransport需要三部分核心原则?

为什么getKerberosTransport需要三部分核心原则?
EN

Stack Overflow用户
提问于 2020-03-13 21:37:37
回答 1查看 394关注 0票数 0

早上/下午/晚上好!

星星之火2.4.x,Hive 1.2.1

源代码:https://github.com/apache/spark/blob/master/sql/hive-thriftserver/v1.2/src/main/java/org/apache/hive/service/auth/KerberosSaslHelper.java

代码语言:javascript
复制
 public static TTransport getKerberosTransport(String principal, String host,
    TTransport underlyingTransport, Map<String, String> saslProps, boolean assumeSubject)
    throws SaslException {
    try {
      String[] names = principal.split("[/@]");
      if (names.length != 3) {
        throw new IllegalArgumentException("Kerberos principal should have 3 parts: " + principal);
      }

现在的问题是:

有人知道为什么火花节约服务器需要一个3部分的kerberos原则吗?

星火节约服务器通过提交一个长期运行的作业来工作,这不需要一个3部分的kerberos原则。

启动一个听端口的服务,不需要3部分kerberos原则(就像火花作业历史一样),对吗?

所以想知道为什么这段代码会检查原则是否有3部分.

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-03-13 21:56:20

Kerberos主体的三个部分是{service}/{name}[@{realm}]。例如host/server.domain.com@realm.comhost/server.domain.com。客户端依赖于这些信息来确定Kerberos的位置,以便它可以请求票证。如果名称以领域名称结尾(例如,server.realm.com),则领域部分通常是可选的。在这种情况下,客户端只是明确地说明了这一点。

我不知道为什么作者会要求这三者。它确实使客户端实现更容易,因为您不必猜测意图,但这是以牺牲API的简单性为代价的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60677520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档