2014-05-16 17 views
0

我使用JNDI查詢到組編錄服務器活動目錄非標準格式回來:的objectSID在

Hashtable<String, Object> env = new Hashtable<String, Object>(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, 
     "com.sun.jndi.ldap.LdapCtxFactory"); 
env.put(Context.PROVIDER_URL, "ldap://" + serverUrl + "/"); 
env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
env.put(Context.SECURITY_PRINCIPAL, userName + "@" + currentDomain); 
env.put(Context.SECURITY_CREDENTIALS, credentials); 
env.put("java.naming.ldap.attributes.binary", "objectSid"); 

// Create the initial context 
DirContext ctx = new InitialDirContext(env); 

當我的objectSID背部和轉換字節[]以十六進制字符串,我得到這樣的小島嶼發展中國家爲:

HEX: ACED0005757200025B42ACF317F8060854E002000078700000001001020000000000052000000025020000 
SID: S-172-23445241858-4088152667-134674455-188500-7370752-17825792-2-537198592-620756992 

這導致字節0具有172的值,並且爲237字節1,以及在解析4字節子當局的端部3個字節。

字節0應始終爲1並且字節2應該是4個字節的子權限標識符(在本例中爲9)的數目。我無法弄清楚發生了什麼,因爲我無法在預期和實際之間正確映射。

我打賭我有一些新手犯的錯誤,但無法弄清楚它可能是什麼;我的希望是,有人在那裏通過這個,可以告訴我它是什麼!

回答

0

這實際上不是一個LDAP問題,而是寫入對象的問題,我回到了一個字節數組。教訓是,更難調試...

相關問題