Spring ldap 2.3.1.RELEASE 目录

本贴最后更新于 1419 天前,其中的信息可能已经斗转星移
1. 介绍
    1. 概览
    2. 传统Java LDAP VS LdapTemplate
    3. 2.2新特性
    4. 2.3新特性
    5. 2.4新特性
    6. 打包概览:你将会用到的依赖包
    7. 开工
    8. 支持:社区和项目地址
    9. 致谢
2. 简单使用
    1. 使用 AttributesMapper 进行查询、检索
    2. 构建 LDAP 查询
    3. 动态构建 Distinguished Names(译:专用名称)
        1. LdapName VS LdapNameBuilder
        2. LdapUtils
    4. 绑定和解绑
        1. 插入数据即为绑定
        2. LdapTemplate
        3. 删除即为解绑
    5. 修改
        1. 修改即重新绑定
3. 简化属性操作及DirContextAdapter
    1. 介绍
    2. 用 ContextMapper 进行检索和查询
    3. 使用 DirContextAdapter 添加和修改数据
    4. DirContextAdapter 和作为属性值的 Distinguished Names 
        1. Distinguished name 会忽略空格,且不区分大小写,不能简单的从字符串相等性判断值
如果一个 member 属性有个值:cn=John Doe,ou=People(注意没有空格)
调用 ctx.addAttributeValue("member", "CN=John Doe, OU=People") 会认为member有两个值,
正确的使用方式:LdapUtils.newLdapName("CN=John Doe, OU=People")
        2. LdapNameBuilder
4. Object-Directory Mapping(ODM)
    1. 介绍:对照ORM框架,spring ldap 提供了 LdapOperators
    2. 注解:@Entry,@Id,@Attribute, @DnAttribute,@Transient
    3. ODM 和 专用名词的属性
5. 增强LDAP查询
    1. LDAP Query Builder 参数:介绍查询时有用的参数,让查询更灵活
    2. 过滤条件:就是查询条件
    3. 硬编码过滤:适用于spring不支持的查询条件
6. 配置
    1. 介绍:推荐使用xml配置
    2. ContextSource 配置及其参数
        1. DirContext 认证:使用DirContext通常需要认证
            1. spring提供另种TLS认证方式:
DefaultTlsDirContextAuthenticationStrategy:支持优雅关闭TLS通道,这在使用native-poolnative-pooling时很重要
ExternalTlsDirContextAuthenticationStrategy
            2. 使用 AuthenticationSource 实现自定义 主题和凭证管理(Custom Principal and Credentials Management)
        2. LDAP池
        3. 增强 ContextSource 配置:自定义环境变量
    3. LdapTemplate 配置
    4. 获取基础LDAP路径的引用(base LDAP path):以后所有的操作都相对这个path
7. Spring LDAP 仓库
    1. 概述
已内部支持 [spring data ldap](https://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html)
由于LDAP协议规定,不支持分页和排序
    2. QueryDSL 的支持
8. 连接池
    1. 介绍
LDAP的连接池支持参考:[Java LDAP pooling support](http://java.sun.com/products/jndi/tutorial/ldap/connect/pool.html)
    2. DirContext 验证
    3. 连接池配置
    4. 连接池Pool2配置
可以学习下common-pool 和 common-pool2 的区别
    5. 配置
        1. 校验的配置
    6. 已知的问题
        1. 自定义认证
9. 添加缺少的重载API方法
    1. 实现自定义搜索方法
    2. 实现其他的自定义Context方法
10. 处理DirContext
    1. 自定义 DirContext 前置/后置处理
    2. 实现请求处理器DirContextProcessor
    3. 查询结果分页
目前一些LDAP服务已经支持了 PagedResultsControl。
在使用分页的时候,必须使用cookie保持请求轨迹,以此实现分页请求调用,这里就用到了上一节讲到的DirContext前置/后置处理。
PagedResultsDirContextProcessor
11. 事务
    1. 介绍
spring LDAP提供了客户端的补偿事务
    2. 配置
    3. JDBC事务集成
    4. LDAP补偿事务解析
        1. 重命名策略
12. 用spring ldap 实现用户认证
    1. 基本认证
    2. 在基本认证上做一些操作
    3. 过时的认证方法
    4. 使用 spring security
13. LDIF解析
    1. 介绍
LDAP Directory Interchange Format (LDIF)
IdifParser
    2. 对象表现形式:LdapAttribute and LdapAttributes
    3. 解析器 Parser
SeparatorPolicy:建立哪些行需要组装成属性的机制
AttributeValidationPolicy:确保在解析之前属性能够正确的构造
Specification:提供一个机制:组装后,哪些对象构造能被校验
    4. Schema校验
    5. 集成 spring batch
org.springframework.ldap.ldif.batch
14. 工具
    1. 多值属性的增量检索
如果一个属性有超过1500个值,Active Directory一般会拒绝一次返回
15. 测试
    1. 使用内嵌服务
spring-ldap-test 提供基于 ApacheDS 或 UnboundID 的内嵌服务器
[ApacheDS](https://directory.apache.org/apacheds/)
[UnboundID](https://www.ldap.com/unboundid-ldap-sdk-for-java)
LdapTestUtils
    2. ApacheDS(directory server)
    3. UnboundID

Version 2.3.1.RELEASE
Last updated 2017-01-19 15:35:09 +00:00

















  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    938 引用 • 1456 回帖 • 163 关注
  • LDAP
    5 引用 • 2 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 99 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 9 关注
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    12 引用 • 26 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    129 引用 • 791 回帖 • 1 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    57 引用 • 22 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1090 引用 • 3467 回帖 • 297 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 636 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 57 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    9 引用 • 83 回帖
  • 倾城之链
    23 引用 • 66 回帖 • 93 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 177 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 633 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 581 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 4 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 596 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 1 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 179 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    83 引用 • 894 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    284 引用 • 4481 回帖 • 652 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖
  • OnlyOffice
    4 引用 • 19 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 676 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 429 关注
  • 安装

    你若安好,便是晴天。

    128 引用 • 1183 回帖