前置说明
CAS 的配置见前文, 单点登录--CAS 简单搭建, cas4.0 搭建好之后,默认试用已经写死的用户名登录,即 casuser/Mellon,下方将讲述 cas4.0 和 ldap 的整合
添加相关 jar
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-ldap</artifactId>
<version>4.0.0</version>
</dependency>
注意:cas-server-support-ldap4.0.0 中默认带的 ldaptive.jar 的版本号为 1.0.3
此版本有 bug,最好换成 1.0.5,修改方式
直接修改 maven 库目录 repository\org\jasig\cas\cas-server\4.0.0\cas-server-4.0.0.pom
<ldaptive.version>1.0.5</ldaptive.version>
修改默认的认证方式
<!-- <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver"/> -->
<entry key-ref="ldapAuthHandler" value-ref="primaryPrincipalResolver" />
<bean id="ldapAuthHandler" class="org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="cn" c:authenticator-ref="authenticator">
<property name="principalAttributeMap">
<map>
<entry key="member" value="member" />
<entry key="mail" value="mail" />
<entry key="cn" value="cn" />
</map>
</property>
<property name="allowMultiplePrincipalAttributeValues" value="true"></property>
</bean>
修改默认的 formatResover 为 SearchDnResolver,已适应多 ou 登录
<bean id="authenticator" class="org.ldaptive.auth.Authenticator"
c:resolver-ref="multiDnResolver" c:handler-ref="authHandler" />
<!--<bean id="adDnResolver" class="org.ldaptive.auth.FormatDnResolver"
c:format="cn=%s,ou=wuhan,dc=infozr,dc=com" /> -->
<bean id="multiDnResolver" class="org.ldaptive.auth.SearchDnResolver"
p:baseDn="dc=infozr,dc=com"
p:subtreeSearch="true"
p:allowMultipleDns="false"
p:connectionFactory-ref="connectionFactory"
p:userFilter="(cn={user})" />
完整的配置文件
http://www.codegather.com
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于