[英]JAVA & GSSAPI: Clearing cache
我編寫了一個簡單的Java應用程序,該應用程序使用GSSAPI來連接到Active Directory(Kerberos SSO)。
我有2個領域和KDC:x和y。
如果我將使用realm / KDC x運行該工具-該工具將正常工作。
如果我將使用realm / KDC y運行該工具-該工具也可以使用。
如果我將運行該工具以對realm / KDC x(登錄,注銷,登錄,注銷)執行2種身份驗證-可以。
領域/ KDC y的結果相同。
問題是當我嘗試在兩個領域/ KDC之間切換時:登錄x,注銷x,登錄y,注銷y-嘗試登錄第二個時,拋出異常:
GSSException:機制級別:消息流已修改(41))
只是為了澄清-僅當我使用2個不同的領域/ KDC(當然,每次使用1個),而沒有在這兩個領域之間重新啟動整個應用程序時,才會出現問題。
我認為java / gssapi以某種方式緩存了領域或krb票證或其他東西。
問題是如何清除該緩存(而不會殺死整個應用程序),或者如果沒有此類緩存/靜態變量,如何使它工作?
謝謝!
您的問題可能是錯誤的krb5.conf
文件。 參見此處: GSSException:消息流已修改(41)
將您的整個krb5.conf
和訪問的SPN完整發布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.