我需要在我的Java應用程序中使用postdatable Kerberos ticket。但我在GSSContext
界面中找不到任何方法。 Java不支持這種Kerberos功能嗎?Java中的Postdatable Kerberos票據
目的如下: 在我們的應用程序中,用戶可以設置一個將來會運行一段時間的批處理。並且應用程序服務器必須使用在批次執行時有效的授權票證,而原始票證可能已過期。
編輯:爲了澄清我先聲明:我發現GSSContext
,GSSContextImpl
還有GSSContextImpl
不給訪問setAuthTime()
方法是隻在Krb5Context
可用。沒有深入研究所有細節,似乎只有通過直接訪問無證類才能實現後期認證。
由於在獲取客戶端瀏覽器發送帶有正確標誌設置的票據方面似乎還有其他問題 - 就像@ Michael-O指出的那樣 - 我想我必須找到另一個解決方案,也許只是詢問用戶輸入用戶名和密碼,用批處理保存它們,然後在批處理啓動時請求新的票證。
postdated ticket的概念聽起來適合我的問題,但似乎缺乏實際用途,導致它沒有得到現有環境的良好支持。
Frank,你真的讀過[RFC4120](http://www.ietf.org/rfc/rfc4120.txt)的2.4章?來自客戶端的TGT必須具有初始標誌「MAY-POSTDATE」。請先檢查一下。是的,Java GSS支持這一點,但我沒有嘗試過。查看[this](http://i.imgur.com/VPXrA.png)搜索。 –
好點!由於客戶端是瀏覽器,也許我無法影響其票據設置。 – FrankPl
我已經檢查過'kinit' unter Ubuntu,並且能夠設置ticket(TGT)=> postdatable的startdate。我還用'kerbtray'檢查了我的Windows憑據緩存,並且TGT不是'MAY-POSTDATE'。據我瞭解,由於SSPI使用這個給定的TGT,並且你不能有一個後期轉發的TGT。你應該在MIT Kerbros郵件列表中提出這個非常具體的問題。我真的很想聽到開發者的意見。 –