2014-03-13 90 views
0

我有一個服務器,承載幾個Java小程序,我想強制認證他們。現在,我啓用了NTLM並且它可以正常工作。 當我禁用NTLM並啓用協商(SPNEGO)時,Java 6客戶端將停留在「服務器返回的HTTP響應代碼:401」,並且該applet將無法啓動。我嘗試使用Java 7,它會工作。Java 6 SPNEGO Kerberos

我不得不使用Java 6,因爲applet不是爲Java 7設計的。我必須做任何事情來啓用Java 6上的Kerberos身份驗證嗎?

感謝

+0

您需要了解更多信息。得到違規類的堆棧跟蹤(拋出異常的類) –

+0

請檢查http://spnego.sourceforge.net/ –

回答

0

這是因爲在Java HTTP客戶端需要讀取一些Kerberos設置(領域名稱,KDC主機名)工作。在JDK 6中,您必須爲它們提供一個krb5.conf文件,而在JDK 7中,Java能夠通過環境變量收集信息。

如果您的小程序已簽名且具有完全權限,則可以將領域/ KDC信息分配給系統屬性java.security.krb5.realm和java.security.krb5.kdc,然後運行HTTP客戶端。希望它有效。

相關問題