CASサーバーを構築するために( https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Overlay+Method )の指示に従いました。 、次にLDAPを介した認証の手順(https://wiki.jasig.org/display/CASUM/LDAP)。ただし、Tomcatログに次のエラーメッセージが表示され続けます。
[LDAP:エラーコード34-無効なDN]; ネストされた例外はjavax.naming.InvalidNameExceptionです:[LDAP:エラーコード34-無効なDN]
コマンドラインから次の検索を実行できるため、バインドユーザーの資格情報が正しいことを確認しました
。ldapsearch-x -H ldaps://fuller.edu:636 -b "ou = People、o = fuller.edu 、o = cp "-D" cn = Directory Manager "-w" password ""(sn = Smith) "cn sn pdsLoginId
その検索の結果は正しく、ほぼ瞬時に行われます。
この時点で、私は自分が何を見逃しているのか完全にはわかりません。以下は、私のdeployerConfigContext.xmlファイルからのスニペットです。
<bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"
p:filter="pdsLoginId=%u"
p:searchBase="ou=People,o=fuller.edu,o=cp"
p:contextSource-ref="contextSource" />
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="pooled" value="true"/>
<property name="url" value="ldaps://fuller.edu:636" />
<property name="userDn" value="cn=Directory Manager"/>
<property name="password" value="our password"/>
<property name="baseEnvironmentProperties">
<map>
<entry key="com.sun.jndi.ldap.connect.timeout" value="3000" />
<entry key="com.sun.jndi.ldap.read.timeout" value="3000" />
<entry key="java.naming.security.authentication" value="simple" />
</map>
</property>
</bean>
私はここstackoverflow.comでいくつかの投稿を検索し、ほとんどの答えを試しましたが、運がありませんでした。誰かが私の構成に欠けているものを見つけて、正しい方向に送ってくれることを願っています。
あなたが見る必要があるかもしれないコードをこれ以上投稿できてうれしいです。
前もって感謝します。