单点登录之CAS与LDAP的配置

项目需要,做一个cas与ldap服务器对接的工作。这里记录一下踩过的坑。
要让cas与ldap配置到一起,需要引入jar:cas-server-support-ldap。不过这里要提醒一下,这个jar有两个不同的组织都有提供:org.apereo.cas和org.jasig.cas。所以在引入maven依赖的时候一定要看清楚。

PS:这里没有cas server的安装与配置,openLDAP的安装配置、数据导入等等,这里请各位自行百度。

第一种jar包org.jasig.cas,这也是各个博客网站上使用较多的方法

<!-- https://mvnrepository.com/artifact/org.jasig.cas/cas-server-support-ldap -->
<dependency>
    <groupId>org.jasig.cas</groupId>
    <artifactId>cas-server-support-ldap</artifactId>
    <version>4.2.7</version>
    <scope>runtime</scope>
</dependency>

这种jar的更新貌似止步于2016年十一月。一些博客上用的jar版本较低,为3.X系列。方法如https://blog.csdn.net/yang651280121/article/details/51304242 所言,建议大家放弃这个方法。
————————————————————————————————————
第二种方式:引入cas的jar:org.apereo.cas

<!-- https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-ldap -->
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-ldap</artifactId>
    <version>5.3.3</version>
    <scope>test</scope>
</dependency>

根据博客https://blog.csdn.net/oLinBSoft/article/details/82152302中的方法,只需要修改部分参数

cas.authn.ldap[0].principalAttributeList=displayName,givenName
cas.authn.ldap[0].principalAttributePassword=userPassword
cas.authn.ldap[0].collectDnAttribute=false
cas.authn.ldap[0].principalDnAttributeName=principalLdapDn
cas.authn.ldap[0].allowMultiplePrincipalAttributeValues=true
cas.authn.ldap[0].allowMissingPrincipalAttributeValue=true
cas.authn.ldap[0].credentialCriteria=
cas.authn.attributeRepository.ldap[0].attributes.uid=uid
cas.authn.attributeRepository.ldap[0].attributes.displayName=displayName
#cas.authn.attributeRepository.ldap[0].attributes.cn=commonName
#cas.authn.attributeRepository.ldap[0].attributes.affiliation=groupMembership
cas.authn.ldap[0].ldapUrl=${spring.ldap.urls}
cas.authn.ldap[0].bindDn=${spring.ldap.username}
cas.authn.ldap[0].bindCredential=secret
cas.authn.ldap[0].poolPassivator=BIND
cas.authn.ldap[0].connectionStrategy=
cas.authn.ldap[0].providerClass=org.ldaptive.provider.unboundid.UnboundIDProvider
cas.authn.ldap[0].connectTimeout=5000
cas.authn.ldap[0].trustCertificates=
cas.authn.ldap[0].keystore=
cas.authn.ldap[0].keystorePassword=
cas.authn.ldap[0].keystoreType=PKCS12
cas.authn.ldap[0].minPoolSize=3
cas.authn.ldap[0].maxPoolSize=10
cas.authn.ldap[0].validateOnCheckout=true
cas.authn.ldap[0].validatePeriodically=true
cas.authn.ldap[0].validatePeriod=500
cas.authn.ldap[0].validateTimeout=5000
cas.authn.ldap[0].failFast=true
cas.authn.ldap[0].idleTime=500
cas.authn.ldap[0].prunePeriod=24
cas.authn.ldap[0].blockWaitTime=5000
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
cas.authn.ldap[0].responseTimeout=8000
cas.authn.ldap[0].allowMultipleDns=false
cas.authn.ldap[0].name=
cas.authn.ldap[0].type=AUTHENTICATED
cas.authn.ldap[0].searchFilter=uid={user}
cas.authn.ldap[0].enhanceWithEntryResolver=true
cas.authn.ldap[0].derefAliases=NEVER
cas.authn.ldap[0].dnFormat=uid=%s,cn=Manager,dc=maxcrc,dc=com
cas.authn.ldap[0].baseDn=dc=maxcrc,dc=com

配置文件中的很多内容,有很多是不需要的,这里只需要下面即可:

cas.authn.ldap[0].ldapUrl=ldap://127.0.0.1:389
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].poolPassivator=none
cas.authn.ldap[0].type=AUTHENTICATED
cas.authn.ldap[0].searchFilter=uid={user}
cas.authn.ldap[0].baseDn=dc=maxcrc,dc=com

这里不使用连接池,不是用ssl。
如果不设置连接池为none或者close,日志会提示无法创建,如果不创建就设置为none或者close。
如果不设置useSsl为false,那么将会无法启动,启动报错为 javax.naming.CommunicationException: 127.0.0.1:389。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值