首页 > 解决方案 > 从 Apache Kerby TGTTicket 检索字符串令牌

问题描述

我正在将 apache kerb-client 用于具有 Kerberos 身份验证的 java 项目。以下页面均未提供足够的文档。 https://directory.apache.org/kerby/ https://github.com/apache/directory-kerby

我设法成功地检索了 tgtTicket 和 sgtTicket,但我不知道如何从 sgtTicket 中检索字符串令牌值?它应该来自 sgtTicket.getSessionKey() 或 sgtTicket.getTicket().getEncryptedEncPart() 还是任何其他方式?

有人可以帮忙吗?

            final var krbClient = getKrbClient();

            // TGT
            final var keyTabFile = new File(getKeytabPath());
            final var tgtTicket = krbClient.requestTgt(getPrincipal(), keyTabFile);
            if (tgtTicket == null || tgtTicket.getSessionKey() == null) {
                aLog.error("Ticket Granting Ticket not found");

                throw new IllegalArgumentException("No Ticket Granting Ticket retrieved");
            }

            // SGT
            final var sgtTicket = krbClient.requestSgt(tgtTicket, getSpnHostName());
            if (sgtTicket == null || sgtTicket.getSessionKey() == null) {
                aLog.error("Service Granting Ticket not found");

                throw new IllegalArgumentException("No Service Granting Ticket retrieved");
            }

            // retrieve string value of key from sgtTicket
            ????????

标签: javaspring-bootkerberosspnegokerberos-delegation

解决方案


推荐阅读