Spring ldap 2.3.1.RELEASE 目录

本贴最后更新于 1440 天前,其中的信息可能已经斗转星移
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 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 160 关注
  • LDAP
    5 引用 • 2 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1398 回帖 • 1 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 2 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 1 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖
  • 安装

    你若安好,便是晴天。

    128 引用 • 1184 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    215 引用 • 462 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    368 引用 • 1212 回帖 • 577 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 427 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 458 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 43 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 550 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 1 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 178 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    76 引用 • 390 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    18 引用 • 72 回帖 • 1 关注
  • MongoDB

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

    90 引用 • 59 回帖 • 3 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 36 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 84 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 18 关注
  • 自由行
    1 关注
  • Kafka

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

    35 引用 • 35 回帖
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    3 引用 • 80 回帖 • 1 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 393 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 2 关注