我有一个 Java API,它与 Kerberos 服务器通信并执行各种操作。截至目前,我的 API 向 Kerberos 服务器请求不可更新的票证。据我了解,jaas 配置文件有一个选项可以将 renewTGT 选项设置为 true,以便可以发出可更新的票证。然而,Jaas似乎对设置“renewUntil”时间有很多限制。谁能告诉我如何请求可更新的机票并控制其可更新性?基本上,有没有一种方法可以执行与 Java 等效的操作: kinit -R ?提前致谢。
从 JDK7 (1.7.0_55) 开始,JAASKrb5LoginModule
不提供任何在身份验证时请求可更新 TGT 的选项,因此目前无法使用 JAAS。您也许能够实现这一点,但您需要直接使用内部 Kerberos 类,绕过 JAAS。
在内部,Krb5LoginModule
实例化一个sun.security.krb5.KrbAsReqBuilder
使用提供的密码或 keyTab 获取凭据。KrbAsReqBuilder
has a setOptions(KDCOptions options)
方法,但是登录模块中没有调用该方法。如果可以访问,您可以调用KDCOptions#set(KDCOptions.RENEWABLE, true)
,如果 KDC 配置为允许更新票证,那么我希望返回的票证可以更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)