《李兴华Java架构师 》完整版
一、常用的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架构师 》完整版相关推荐
- 《学做程序经理》完整版
文/Joel Spolsky 译/罗小平 指派一名优秀的程序经理,是团队产出优秀软件的重要前提之一.你的团队里可能没有这样的人,其实绝大多数团队都没有. Charles Simonyi,这位曾与 ...
- coji小机器人_让孩子学做程序员 Coji编程机器人体验
原标题:让孩子学做程序员 Coji编程机器人体验 玩具机器人可能每个孩子小时候的梦想,不过对于90后小编来说,小时候见过的所谓"机器人"好像最多也就是那种可遥控移动或放音乐的电子玩 ...
- 微软ping程序源代码完整版
微软ping程序源代码完整版 编写自己的一个ping程序,可以说是许多人迈出网络编程的第一步吧!!这个ping程序的源代码经过我的修改和调试,基本上可以取代windows中自带的ping程序. 各个模 ...
- php退款,php实现小程序退款完整版
本文主要和大家分享php实现小程序退款完整版,功能前提:1. 使用 wx php sdk (小程序支付完整版) , 2. 配置证书时使用绝对路径希望能帮助到大家. 1. 上代码:/** * 退款 * ...
- 微软ping程序源代码完整版(附详细的注释)
作者:侯志江 单位:天津大学软件学院 E-mail :tjuhzjemail@yahoo.com.cn 日期:2005年1月1日 内容简介: 编写自己的一个ping程序 ...
- 零基础学python-Python入门教程完整版(懂中文就能学会)
提取码:sjfo 目录大纲: 本套教程15天 学前环境搭建 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1 ...
- 杉德支付php代码实现_php实现小程序支付完整版
本文实例为大家分享了php实现小程序支付的具体代码,供大家参考,具体内容如下 环境: tp3.2 + 小程序 微信支付功能开通 Step1:下载PHP 支付SDK(下载地址) 放到Library\ ...
- 下载python教程-Python基础教程下载【黑马程序员完整版】
课程介绍 目录大纲: 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1-3天): 该阶段首先通过介绍不同领域 ...
- 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...
[实例简介] 本程序是我写的Android手机控制智能小车的手机端的全部的源程序,下载后直接就能用. [实例截图] [核心代码] 624ba65e-a75e-4ba0-8e72-6dbc0823fcb ...
- iso 软件测试控制程序,最新ISO17025:2017一整套程序文件完整版(共38个程序)
XXXX检测实验室 HHRBDC/CX01-01~38-2018 (3) 标题:保护客户机密信息和所有权的程序 (8) 标题:保证实验室诚信度的政策和程序 (10) 标题:质量手册的管理 (11) 标 ...
最新文章
- python安装pyqt5 qml_PyQt5:PyQt5程序打包2
- Mesos在传统金融企业的实践——平安科技陈秋浩实录分享
- bootstraptable合并标题_Bootstrap-table 单元格合并 、表头合并
- Python中flatten( ),matrix.A用法
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第5题——锦标赛
- 微服务架构中的key-value pair数据结构
- 先序创建二叉树,中序、先序、后序遍历
- Boost.Bind的基础使用
- textView 父视图alpha设置不影响子视图
- 学习用 Keras 搭建 CNN RNN 等常用神经网络
- 安捷伦or是德信号源+频谱仪操作:从程控到自动测试(一)仪器校准的程控实现
- 东方联盟郭盛华:物联网安全是供应链问题
- flutter友盟统计
- mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...
- 网站文章采集器-万能文章采集器
- 剑网三插件入门教程(2):在游戏中调试Lua代码
- 加油站-问题详解(暴力-整体-贪心)
- 点位定位打开活动,到了某个点位后才可以打卡的活动,让打卡更具体,overflow: visible默认情况下,溢出是可见的
- 计算机基础作业题及答案,计算机文化基础习题集(含答案)
- Bochs简介+使用