Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Postdatable Kerberos票据_Java_Kerberos_Gssapi - Fatal编程技术网

Java中的Postdatable Kerberos票据

Java中的Postdatable Kerberos票据,java,kerberos,gssapi,Java,Kerberos,Gssapi,我需要在Java应用程序中添加一个。但是我在GSSContext界面中没有找到任何方法。Java不支持此Kerberos功能吗 目的如下: 在我们的应用程序中,用户可以设置将在未来某个时间运行的批处理。当原始票据可能已过期时,应用服务器必须使用在批处理执行时有效的委托票据 编辑:为了澄清我的第一句话:我发现GSSContext,GSSContextImpl以及GSSContextImpl不允许访问setAuthTime()方法,该方法仅在Krb5Context中可用。在没有深入了解所有细节的情况

我需要在Java应用程序中添加一个。但是我在
GSSContext
界面中没有找到任何方法。Java不支持此Kerberos功能吗

目的如下: 在我们的应用程序中,用户可以设置将在未来某个时间运行的批处理。当原始票据可能已过期时,应用服务器必须使用在批处理执行时有效的委托票据

编辑:为了澄清我的第一句话:我发现
GSSContext
GSSContextImpl
以及
GSSContextImpl
不允许访问
setAuthTime()
方法,该方法仅在
Krb5Context
中可用。在没有深入了解所有细节的情况下,似乎只有直接访问未记录的类才能进行后期身份验证

正如@Michael-O指出的那样,让客户端浏览器发送设置了正确标志的票据似乎还有其他问题,我想我必须找到另一个解决方案,可能只是向用户询问用户名和密码,用批处理加密保存它们,然后在批处理开始时请求一个新票据

过期票据的概念听起来适合我的问题,但似乎缺乏实际用途,导致现有环境无法很好地支持它。

除了我的评论:


弗兰克,你真的读过《圣经》第2.4章了吗?。来自客户端的TGT必须具有初始标志
MAY-POSTDATE
。请先检查一下。是的,JavaGSS支持这一点,但我自己还没有尝试过。请参阅搜索

弗兰克,你的问题有解决办法。昨天刚来找我。我已经回答了这个问题。这可能是一个有点工作,以backport这段代码,但它是值得的

除我的评论外,请参见。


弗兰克,你真的读过《圣经》第2.4章了吗?。来自客户端的TGT必须具有初始标志
MAY-POSTDATE
。请先检查一下。是的,JavaGSS支持这一点,但我自己还没有尝试过。请参阅搜索

弗兰克,你的问题有解决办法。昨天刚来找我。我已经回答了这个问题。这可能是一个有点工作,以backport这段代码,但它是值得的



看。

Frank,你真的读过《圣经》第2.4章了吗?。来自客户端的TGT必须具有初始标志
MAY-POSTDATE
。请先检查一下。是的,JavaGSS支持这一点,但我自己还没有尝试过。看搜索。好的观点!由于客户端是一个浏览器,可能我无法影响它的票证设置。我已经在Ubuntu上选中了
kinit
unter,我可以设置票证的起始日期(TGT)=>postdatable。我还使用
kerbtray
检查了我的Windows凭据缓存,并且TGT不是
MAY-POSTDATE
。因为SSPI使用这个给定的TGT,所以据我所知,您不能有一个后发的TGT。你应该在MIT Kerbros邮件列表中提出这个非常具体的问题。我真的很想听听开发人员的意见。@FrankPl:在web应用程序/浏览器中,postdatable票证的具体用例是什么?听起来很有趣。@Koraktor:如上所述,我们的应用程序允许用户创建一些批处理作业,这些作业计划在将来的某个日期/时间执行。这些作业需要通过http访问另一个应用程序。目前,执行不需要特定于用户的身份验证。但下一版本的应用程序需要使用在浏览器中运行客户端的用户的身份验证。现在我们来讨论一个问题,Kerberos票证默认在10小时后过期,可能是在执行计划的作业之前。Frank,您真的阅读了吗?的第2.4章?。来自客户端的TGT必须具有初始标志
MAY-POSTDATE
。请先检查一下。是的,JavaGSS支持这一点,但我自己还没有尝试过。看搜索。好的观点!由于客户端是一个浏览器,可能我无法影响它的票证设置。我已经在Ubuntu上选中了
kinit
unter,我可以设置票证的起始日期(TGT)=>postdatable。我还使用
kerbtray
检查了我的Windows凭据缓存,并且TGT不是
MAY-POSTDATE
。因为SSPI使用这个给定的TGT,所以据我所知,您不能有一个后发的TGT。你应该在MIT Kerbros邮件列表中提出这个非常具体的问题。我真的很想听听开发人员的意见。@FrankPl:在web应用程序/浏览器中,postdatable票证的具体用例是什么?听起来很有趣。@Koraktor:如上所述,我们的应用程序允许用户创建一些批处理作业,这些作业计划在将来的某个日期/时间执行。这些作业需要通过http访问另一个应用程序。目前,执行不需要特定于用户的身份验证。但下一版本的应用程序需要使用在浏览器中运行客户端的用户的身份验证。现在我们来讨论一个问题,Kerberos票证默认在10小时后过期,可能是在执行计划的作业之前。谢谢。无论如何,我认为我们会坚持要求用户输入用户名和密码的解决方案(就像当前版本的应用程序一样,所以从用户的角度来看没有变化),然后在我们需要的时候在服务器上生成一个新的票证。这样做很有效,但不是很优雅。在密码到期/更改和重新提供新密码的黄昏,您的方法将失败。我完全同意。但我必须平衡努力和结果。经过一些思考,过期密码的问题可能也是我最初想到的过期票据的问题——因为票据的加密/解密是使用从用户密码派生的密钥完成的。但实际上,我不知道。可能是