我有一个Java API,它可以与Kerberos服务器通信并执行各种操作。到目前为止,我的API向Kerberos服务器请求不可更新的票证。据我所知,jaas配置文件有一个选项将renewTGT选项设置为true,以便可以发出可更新的票证。然而,Jaas在设置"renewUntil“时间方面似乎有很多限制。谁能告诉我如何申请可续期的车票并控制它的可续期?基本上,有没有一种方法可以执行与这个操作等效的Java操作: kinit -R?提前谢谢。
发布于 2014-09-04 07:50:55
从JDK7 (1.7.0_55)开始,JAAS在进行身份验证时不提供任何请求可更新Krb5LoginModule的选项,因此使用JAAS目前无法做到这一点。您也许能够做到这一点,但是您需要绕过JAAS直接使用内部Kerberos类。
在内部,Krb5LoginModule实例化sun.security.krb5.KrbAsReqBuilder以使用提供的密码或keyTab获取凭据。KrbAsReqBuilder有一个setOptions(KDCOptions options)方法,但在登录模块中不调用该方法。如果可以访问它,您可以调用KDCOptions#set(KDCOptions.RENEWABLE, true),如果KDC被配置为允许可更新的票证,那么我希望返回的票证是可更新的。
https://stackoverflow.com/questions/18283325
复制相似问题