Spring ldap 2.3.1.RELEASE 目录

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

    942 引用 • 1459 回帖 • 31 关注
  • LDAP
    5 引用 • 2 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 4 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 383 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • Jenkins

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

    53 引用 • 37 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    338 引用 • 705 回帖
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 533 回帖 • 778 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    565 引用 • 3532 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 741 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 127 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 733 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 2 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 659 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    8 引用 • 30 回帖 • 407 关注
  • 996
    13 引用 • 200 回帖 • 2 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 123 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 3 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • OpenShift

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

    14 引用 • 20 回帖 • 623 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 127 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    124 引用 • 169 回帖
  • MongoDB

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

    90 引用 • 59 回帖 • 4 关注