2012-01-05 11 views
2

私は次のような問題があります。ユーザのActive Directoryパスワードに '&'が含まれていると、ユーザはwebappにログインできません。 問題のあるLDAPサーバーへのポート転送を使用してローカルマシンでこれをデバッグしましたが、すべて正常に動作します。 しかし、リモートサーバーでそのパスワードでログインすると、失敗します。 以下のldap configのダンプを投稿しました。 また、auth(!)にはシンプルなテキストを使用しています。 良いアイデアから新鮮なので、どんなアイデアも歓迎します。パスワードに「&」を使用して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

serverNameの:CN = ABCDC03、CNは=サーバー、CN =はFoo-市、CN =サイト、CN =構成、DCはFOOを= 、DC = comの

でsupportedSASLMechanisms:GSSAPI、GSS-SPNEGO、EXTERNAL、DIGEST-MD5

ldapServiceName:foo.com:[email protected].COM

namingContexts:DC = foo、DC = com、CN =構成、DC = foo、DC = com、CN =スキーマ、CN =構成、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 0.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 1。 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:

TRUE:CN = NTDS設定、CN = ABCDC03、CN =サーバー、CN =はFoo-市、CN =サイト、CN =構成、DCはFOO、DC = comの

isGlobalCatalogReadyを=

defaultNamingContext: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

:DCがfoo、DC = comの

supportedCapabilitiesを=

+0

URLを構成するためにパスワードを使用していると思うかもしれませんが... LDAPは私の強みではありませんが、疑わしいと感じています – SJuan76

+0

問題は、パスワードStrignがURLエンコードされているということです(あなたが何らかの形式で入力したとします)?純粋な推測 –

答えて

1

私はこの問題がwebappを介したパスワードの実際の渡しかもしれないと思います。パスワードフィールドには、アンパサンドが含まれているので消毒が必要な場合があります。アンパサンドはコード内のある時点で特別な文字になる可能性があります(コードの異なる部分がどのような言語で書かれているか分からないことはわかりません)。私が持っていた同様の問題の例として、WordにOracleに貼り付けるステートメントを書きましたが、誤ってOracleのすべてを破ったWordでTABを使用しました。

関連する問題