2014-02-19 58 views
1

windows-xp將授權頭中的SPNEGO令牌發送到我們的理解kerberos協議的服務器。服務器應用程序使用java提供的gss-api實現。gss名稱在愛爾蘭語fada字符的java中被破壞

我們的代碼從spnego標記中提取upn名稱並使用LDAP存儲對其進行驗證。如果upn名稱只包含ascii字符(小於127),那麼每件事情都可以正常工作。

但是,如果用戶名包含非ascii字符(例如愛爾蘭fada),那麼java gss-api會將它們解釋爲垃圾字符。

我想知道Java7 GSS名稱是否可以包含非ascii字符?

回答

2

根據RFC 3641,RFC 1510要求主體名稱爲GeneralString,它是UTF-8 encoded string。因此,您應該首先檢查Wireshark中的字節,看它們是否正常。如果您認爲JGSS不遵循該規定,您應該向Oracle提交一張票。

+0

這是Kerberos的的一部分一直是有爭議的和許多老Kerberos實現不按最近的RFC的。我對Java kerberos庫的使用經驗是,它們跟不上前進的標準。 –