使用Maven构建和Ellucian Luminis LDAP的CAS服务器身份验证失败

时间:2013-02-21 00:24:01

标签: ldap war cas

我按照(https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Overlay+Method)的说明来构建CAS服务器,然后按照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 =目录管理员”-w“密码”“(sn =史密斯)“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搜索过几篇帖子,并尝试了大部分答案,但没有运气。我希望有人会发现我的配置中缺少的东西并向我发送正确的方向。

我很高兴发布您可能需要查看的更多代码。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的命令行LDAP绑定测试使用"ou=People,o=our.edu,o=cp"的DN,但配置文件指定ou=People,o=edu,o=cp的DN。那些不一样。

o=our.eduo=edu

评论解释为ou=People,o=fuller.edu,o=cp

下一步是查看是否需要使用反斜杠转义句点,以便在命令行上运行的ou=People,o=fuller.edu,o=cp可能在配置文件中为ou=People,o=fuller\.edu,o=cp

相关问题