我有以下問題:如果用戶的Active Directory密碼包含'&',用戶將無法登錄到我們的Web應用程序。 我在我的本地機器上使用端口轉發到有問題的LDAP服務器進行調試,並且一切正常。 但是,如果我在遠程服務器上使用該密碼登錄,則會失敗。 我已經發布了下面的ldap配置轉儲。 此外,我們使用簡單的文本的身份驗證(!) 任何想法都會受到歡迎,因爲我剛剛從好想法。LDAP在密碼中使用'&'失敗。失敗並不一致,但
Hashtable<String, String> environment = new Hashtable<String, String>();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
environment.put(Context.SECURITY_PRINCIPAL, domainBasedUsername);
environment.put(Context.SECURITY_CREDENTIALS, password);
environment.put(Context.PROVIDER_URL, getActiveDirectoryServerUrl())
isSynchronized:TRUE
supportedLDAPVersion:3,2
服務器名稱:CN = ABCDC03,CN =服務器,CN =富城,CN =站點,CN =配置,DC = FOO ,DC = COM
中supportedSASLMechanisms:GSSAPI,GSS-SPNEGO,EXTERNAL DIGEST-MD5
ldapServiceName:foo.com:[email protected]
namingContexts:DC = foo,DC = com,CN = Configuration,DC = foo,DC = com,CN = Schema,CN = Configuration,DC = foo,DC = com,DC = DomainDnsZones,DC = foo,DC = com的,DC = ForestDnsZones,DC = FOO,DC = COM
domainControllerFunctionality:3
supportedLDAPPolicies:MaxPoolThreads,MaxDatagramRecv,MaxReceiveBuffer,InitRecvTimeout,MaxConnections最大,MaxConnIdleTime,maxpagesize可,MaxQueryDuration,MaxTempTableSize,MaxResultSetSize,MaxNotificationPerConn,MaxValRange
forestFunctionality:2
configurationNamingContext:CN =配置,DC = FOO,DC = COM
rootDomainNamingContext:DC = FOO,DC = COM
SchemaNamingContext:CN =架構,CN =配置,DC = FOO,DC = COM
subschemaSubentry:CN =骨料,CN =架構,CN =配置,DC = FOO,DC = COM
supportedControl:1.2.840.113556.1.4.319,1.2.840.113556.1.4.801,1.2.840.113556.1.4 .473,1.2.840.113556.1.4.528,1.2.840.113556.1.4.417,1.2.840.113556.1.4.619,1.2.840.113556.1.4.841,1.2.840.113556.1.4.529,1.2.840.113556.1.4.805 ,1.2.840.113556.1.4.521,1.2.840.11 3556.1.4.970,1.2.840.113556.1.4.1338,1.2.840.113556.1.4.474,1.2.840.113556.1.4.1339,1.2.840.113556.1.4.1340,1.2.840.113556.1.4.1413,2.16.840.1.113730.3。 4.9,2.16.840.1.113730.3.4.10,1.2.840.113556.1.4.1504,1.2.840.113556.1.4.1852,1.2.840.113556.1.4.802,1.2.840.113556.1.4.1907,1.2.840.113556.1.4.1948, 1.2.840.113556.1.4.1974,1.2.840.113556.1.4.1341,1.2.840.113556.1.4.2026
highestCommittedUSN:9122909
domainFunctionality:2
DNSHOSTNAME:ABCDC03.foo.com
currentTime:20120105081254。0Z
dsServiceName:CN = NTDS設置,CN = ABCDC03,CN =服務器,CN =富城,CN =站點,CN =配置,DC = FOO,DC = COM
isGlobalCatalogReady:TRUE
defaultNamingContext:DC = FOO,DC = COM
supportedCapabilities:1.2.840.113556.1.4.800,1.2.840.113556.1.4.1670,1.2.840.113556.1.4.1791,1.2.840.113556.1.4.1935
事實上,導致失敗的字符是&讓我想,也許在你使用它來編寫一個URL的一些密碼......只是說,LDAP不是我的強項,但我覺得它可疑 – SJuan76 2012-01-05 12:39:51
難道問題是密碼Strign帶有URL編碼(假設你以某種形式輸入)?純粹的猜測 – 2012-01-05 12:53:57