一、常用的LDAP服务器有以下几种

1:Apache directory server

2:Sun directory server

3:openDS 一个开源的,基于LDAP和DSML标准的Directory service。Directory service不仅包括Directory server,还有其它与directory相关的基本service:directory  proxy、virtual dirctory、namespace distribution和数据同步Directory server是一个可以通过网络访问,信息分级存储的数据库。OpenDS只能用在linux操作系统。该项目的地址为:http://www.opends.org/

4: Netscape Directory Server

5: Window AD

6: IBM Tivoli Diectory Server

本文档中使用IBM Tivoli Diectory Server作为测试LDAP服务器,apache directory studio作为LDAP客户端软件(到http://directory.apache.org/ 下载并安装apache directory studio1.4.0)。LDAP服务器可以装在不同的机器上,CAS通过配置URL来访问它,下面看看CAS和LDAP服务器结合起来要如何配置。

二、CAS Server端的配置

1.分别将spring-ldap-1.3.1.RELEASE-all.jar(可以在 Spring官网下载spring-ldap-1.3.1.RELEASE-minimal.zip,解压后在dist目录下找到spring-ldap-1.3.1.RELEASE-all.jar)和cas-server-support-ldap.jar(可以在CAS包moudles目录下找到)两个文件添加至cas/WEB-INF/lib目录下。

2.如果是Mave构建项目的,添加LDAP的相关依赖:

<dependency>

<groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-ldap</artifactId> <version>${cas.version}</version> </dependency> <!-- 仅仅在使用到连接池时添加该依赖 <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>${apache.commons.pool.version}</version></dependency> --> LDAP认证配置有两种:[第一种]、FastBindLdapAuthenticationHandler 这种认证处理器一般用于DN是由用户名直接组成的,比如:uid=%u,ou=dev,dc=micmiu.com,dc=com ,其中 %u 就是CAS登录的用户名。修改web的配置文件 WEB-INF\deployerConfigContext.xml:首先在<beans>根节点下添加bean:ContextSource 的配置: <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="pooled" value="false"/> <property name="url" value="ldap://ldapServerIp:389" /> <property name="userDn" value="cn=root"/> <property name="password" value="your_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> ContextSource 的配置说明:(1)如果有多个LDAP服务器,可以通过参数urls 配置多个。(2)FastBindLdapAuthenticationHandler配置时,这里的userDn 可以配置成 “cn=root,ou=dev,dc=micmiu,dc=com” 或 “cn=root,ou=dev” 或 “cn=root” 或 “root” 这四个都可以。其中的cn=root为LDAP服务器实例的管理员用户,password为对应的密码。(3)如果LDAP服务器有SSL,注意url配置的前缀是ldaps:”ldaps://ldapServerIp:636″。在<bean id=”authenticationManager” />下找到SimpleTestUsernamePasswordAuthenticationHandler的配置,修改成如下: <bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler"> <property name="filter" value="uid=%u,ou=dev,dc=micmiu,dc=com" /> <property name="contextSource" ref="contextSource" /> </bean> [第二种]、BindLdapAuthenticationHandler 这种认证处理器一般用于需要验证的用户名是DN的其他的属性比如email,而不是上面第一种处理器中的uid(当然uid属性同样适用,下面我们配置的示例就还是用uid)。修改web的配置文件 WEB-INF\deployerConfigContext.xml:同样在<beans>根节点下添加bean:ContextSource 的配置: <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="anonymousReadOnly" value="false" /> <property name="password" value="your_password" /> <property name="pooled" value="false" /> <property name="urls"> <list> <value>ldap://ldapServerIp:389</value> </list> </property> <property name="userDn" value="cn=root,dc=micmiu,dc=com" /> <property name="baseEnvironmentProperties"> <map> <!-- LDAP SSL访问配置 <entry key="java.naming.security.protocol" value="ssl" /> --> <entry key="java.naming.security.authentication" value="simple" /> </map> </property> </bean> 在<bean id=”authenticationManager” />修改认证bean的配置,修改成如下: <bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> <property name="filter" value="uid=%u" /> <property name="searchBase" value="dc=micmiu,dc=com" /> <property name="contextSource" ref="contextSource" /> <!-- 允许多个账号--> <property name="allowMultipleAccounts" value="true" /> </bean>

《李兴华Java架构师 》完整版相关推荐

  1. 《学做程序经理》完整版

    文/Joel Spolsky    译/罗小平 指派一名优秀的程序经理,是团队产出优秀软件的重要前提之一.你的团队里可能没有这样的人,其实绝大多数团队都没有. Charles Simonyi,这位曾与 ...

  2. coji小机器人_让孩子学做程序员 Coji编程机器人体验

    原标题:让孩子学做程序员 Coji编程机器人体验 玩具机器人可能每个孩子小时候的梦想,不过对于90后小编来说,小时候见过的所谓"机器人"好像最多也就是那种可遥控移动或放音乐的电子玩 ...

  3. 微软ping程序源代码完整版

    微软ping程序源代码完整版 编写自己的一个ping程序,可以说是许多人迈出网络编程的第一步吧!!这个ping程序的源代码经过我的修改和调试,基本上可以取代windows中自带的ping程序. 各个模 ...

  4. php退款,php实现小程序退款完整版

    本文主要和大家分享php实现小程序退款完整版,功能前提:1. 使用 wx php sdk (小程序支付完整版) , 2. 配置证书时使用绝对路径希望能帮助到大家. 1. 上代码:/** * 退款 * ...

  5. 微软ping程序源代码完整版(附详细的注释)

    作者:侯志江     单位:天津大学软件学院       E-mail :tjuhzjemail@yahoo.com.cn   日期:2005年1月1日     内容简介: 编写自己的一个ping程序 ...

  6. 零基础学python-Python入门教程完整版(懂中文就能学会)

    提取码:sjfo 目录大纲: 本套教程15天 学前环境搭建 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1 ...

  7. 杉德支付php代码实现_php实现小程序支付完整版

    本文实例为大家分享了php实现小程序支付的具体代码,供大家参考,具体内容如下 环境: tp3.2  + 小程序 微信支付功能开通 Step1:下载PHP 支付SDK(下载地址)  放到Library\ ...

  8. 下载python教程-Python基础教程下载【黑马程序员完整版】

    课程介绍 目录大纲: 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1-3天): 该阶段首先通过介绍不同领域 ...

  9. 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...

    [实例简介] 本程序是我写的Android手机控制智能小车的手机端的全部的源程序,下载后直接就能用. [实例截图] [核心代码] 624ba65e-a75e-4ba0-8e72-6dbc0823fcb ...

  10. iso 软件测试控制程序,最新ISO17025:2017一整套程序文件完整版(共38个程序)

    XXXX检测实验室 HHRBDC/CX01-01~38-2018 (3) 标题:保护客户机密信息和所有权的程序 (8) 标题:保证实验室诚信度的政策和程序 (10) 标题:质量手册的管理 (11) 标 ...

最新文章

  1. python安装pyqt5 qml_PyQt5:PyQt5程序打包2
  2. Mesos在传统金融企业的实践——平安科技陈秋浩实录分享
  3. bootstraptable合并标题_Bootstrap-table 单元格合并 、表头合并
  4. Python中flatten( ),matrix.A用法
  5. 征战蓝桥 —— 2014年第五届 —— C/C++A组第5题——锦标赛
  6. 微服务架构中的key-value pair数据结构
  7. 先序创建二叉树,中序、先序、后序遍历
  8. Boost.Bind的基础使用
  9. textView 父视图alpha设置不影响子视图
  10. 学习用 Keras 搭建 CNN RNN 等常用神经网络
  11. 安捷伦or是德信号源+频谱仪操作:从程控到自动测试(一)仪器校准的程控实现
  12. 东方联盟郭盛华:物联网安全是供应链问题
  13. flutter友盟统计
  14. mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...
  15. 网站文章采集器-万能文章采集器
  16. 剑网三插件入门教程(2):在游戏中调试Lua代码
  17. 加油站-问题详解(暴力-整体-贪心)
  18. 点位定位打开活动,到了某个点位后才可以打卡的活动,让打卡更具体,overflow: visible默认情况下,溢出是可见的
  19. 计算机基础作业题及答案,计算机文化基础习题集(含答案)
  20. Bochs简介+使用

热门文章

  1. 山东大学计算机学院交叉,计算机学院交叉研究中心硕士研究生王业超获 CADGraphics 最佳论文奖...
  2. visio流程图制作
  3. 统计学计算机难吗,我能不能做生信?生信难吗?
  4. 图片分类-python
  5. 网络闪断导致oracle监听终止,一个由网络闪断导致的CICS交易网关异常的案例分享...
  6. 什么是长尾关键词986
  7. joda dateTime简单用法
  8. 《炬丰科技-半导体工艺》半导体封装流程
  9. java 栈的基本介绍
  10. PLC电气控制柜怎么接线?