LDAP サービスとして OpenDJ が組み込まれた OpenAM を使用して、JBoss 7 で実行されている Web アプリケーションを保護しています。
JBoss を起動すると、次のエラーが表示されます。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ldapUserDN'
...
Caused by: javax.naming.NameNotFoundException: ldap/idp/userDN -- service jboss.naming.context.java.ldap.idp.userDN
どうやらSpringはJNDIノードldap/idp/userDNを探しています。しかし、プロジェクトで取得した jboss 構成ファイルには、次のエントリがあります。
<simple name="ldap/opendj/url" value="ldap://localhost:50389"/>
<simple name="ldap/opendj/userDN" value="cn=Directory Manager"/>
<simple name="ldap/opendj/password" value="mypassword"/>
<simple name="ldap/opendj/baseDN" value="dc=opensso,dc=java,dc=net"/>
これらのプロパティは、JBoss の JNDI ツリーに追加されます。
たとえば、これらを「ldap/idp/userDN」に変更すると、エラーは解消されますが、「ldap/opendj/userDN」を「ldap/idp/userDN」にマップする必要がある場所があるかどうか疑問に思っていました"、それは私が逃した。