`
xrb2008
  • 浏览: 171002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringLDAP-Reference(中文文档)(四)

DAO 
阅读更多

第四章 添加missing API方法重载

 

4.1自定义查询方法

尽管在LdapTemplate中有很多的DirContext重载方法,但它不可能对每个方法都这样做,因为方法太多了,但是我们提供一种方法使用LdapTemplate来得到你想要的conetxt

比如说你要调用如下的context方法

 NamingEnumerationsearch(Namename,StringfilterExpr,Object[]filterArgs,SearchControlsctls)

在LdapTemplate中没有合适的重载方法,我们可以用自定义的SearchExecutor实现

 publicinterfaceSearchExecutor{
  publicNamingEnumerationexecuteSearch(DirContextctx)throwsNamingException;
 }
 
 在你自己定义的执行程序(executor)中,你可以连接DirContext,调用你想要的方法,然后你需要提供一个处理程序来处理返回结果。你可以使用现有的
 CollectingNameClassPairCallbackHandler,收集到一个内部集合中,为了执行搜索,在LdapTemplate中需要一个执行程序和处理程序(an executor and a handler)
 最后,返回你想要的结果集合
 
 例4.1 使用SearchExecutor和AttributesMapper执行自定义查询
 
  packagecom.example.dao;
  publicclassPersonDaoImplimplementsPersonDao{
  ...
  publicListsearch(finalNamebase,finalStringfilter,finalString[]params,
  finalSearchControlsctls){
  SearchExecutorexecutor=newSearchExecutor(){
  publicNamingEnumerationexecuteSearch(DirContextctx){
  returnctx.search(base,filter,params,ctls);
  }
  };
  CollectingNameClassPairCallbackHandlerhandler=
  newAttributesMapperCallbackHandler(newPersonAttributesMapper());
  ldapTemplate.search(executor,handler);
  returnhandler.getList();
  }
  }
  
  如果你更喜欢用ContextMapper生成AttributesMapper,可以这样
  
  例4.2 使用 SearchExecutor and ContextMapper的查询方法
  packagecom.example.dao;
  publicclassPersonDaoImplimplementsPersonDao{
  ...
  publicListsearch(finalNamebase,finalStringfilter,finalString[]params,
  finalSearchControlsctls){
  SearchExecutorexecutor=newSearchExecutor(){
  publicNamingEnumerationexecuteSearch(DirContextctx){
  returnctx.search(base,filter,params,ctls);
  }
  };
  CollectingNameClassPairCallbackHandlerhandler=
  newContextMapperCallbackHandler(newPersonContextMapper());
  ldapTemplate.search(executor,handler);
  returnhandler.getList();
  }
  }
  
  注意
  
  当我们使用ContextMapperCallbackHandler时,必须在SearchControls中setReturningObjFlag(true)
  
  4.2 实现其它自定义的Context Methods
  
  同自定义查询方法一样,你可以在Dircontext中使用ContextExecutor
  
   publicinterfaceContextExecutor{
   publicObjectexecuteWithContext(DirContextctx)throwsNamingException;
   }
   

   当实现一个自定义的ContextExecutor时,  executeReadOnly() 或者executeReadWrite(),比如我们要调用此方法
   
   Object lookupLink(Namename)
   
   在现有DirContext中,没有相对应的LdapTemplate方法,它是个查询方法,所以是只读的,我们可以这样实现它:
   
   例4.3 使用ContextExecutor的自定义DirContext
   
   packagecom.example.dao;
   publicclassPersonDaoImplimplementsPersonDao{
   ...
   publicObjectlookupLink(finalNamename){
   ContextExecutorexecutor=newContextExecutor(){
   publicObjectexecuteWithContext(DirContextctx){
   returnctx.lookupLink(name);
   }
   };
   returnldapTemplate.executeReadOnly(executor);
   }
   }
   
   同样的操作你可以使用 executeReadWrite() 来执行

0
0
分享到:
评论

相关推荐

    spring-ldap-reference

    ### Spring LDAP 参考文档详解 #### 前言 Spring LDAP 是一款为简化 LDAP (Lightweight Directory Access Protocol) 操作而设计的框架。它基于 Spring 框架,利用了 Spring 的强大功能来实现对 LDAP 目录的访问、...

    spring-security-reference.pdf

    由于提供的文件内容是关于Spring Security的参考资料,接下来将详细说明Spring Security 4.0.4.RELEASE版本中涉及的关键知识点。在展开知识点介绍之前,需要指出,由于原文件可能包含一些格式错误或 OCR 识别的问题...

    Spring-ladp-reference

    根据给定的文件信息,以下是对“Spring-LDAP”参考文档的知识点总结与扩展: ### Spring-LDAP概述 Spring-LDAP是Spring框架的一部分,专注于提供与轻量级目录访问协议(LDAP)集成的功能。它简化了开发人员在Java...

    spring-ldap demo

    2. `spring-ldap-reference.pdf`:这个文件很可能是 Spring LDAP 的官方参考文档,包含了框架的所有类、接口和方法的详细介绍,以及示例代码。通过阅读此文档,你可以深入理解 Spring LDAP 的工作原理,学习如何配置...

    spring-security-reference-4.0.1

    - **LDAP (spring-security-ldap.jar)**:提供 LDAP 认证和授权支持。 - **ACL (spring-security-acl.jar)**:提供了基于访问控制列表 (ACL) 的权限管理。 - **CAS (spring-security-cas.jar)**:支持使用 CAS 单点...

    spring-security-reference-4.1.1.RELEASE

    - LDAP (`spring-security-ldap.jar`):提供 LDAP 集成支持。 - ACL (`spring-security-acl.jar`):提供基于权限的访问控制功能。 - CAS (`spring-security-cas.jar`):提供对 CAS 协议的支持。 - OpenID (`...

    spring-security-reference

    ### Spring Security 参考文档概览 #### 一、引言与基础知识 ##### 1.1 什么是 Spring Security? Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它为应用程序提供了一种机制来保护自身免...

    Spring Security Reference中文版

    ### Spring Security Reference中文版知识点概览 #### 一、Spring Security 概述 - **Spring Security** 是一个强大的和高度可定制的身份验证和访问控制框架。它为基于Spring的应用提供了声明式的安全服务。 ####...

    springsecurity3.1.pdf

    标题:springsecurity3.1.pdf 描述:springsecurity3.1.pdf 标签:spring security3.1 部分内容:SpringSecurity Reference Documentation by Ben Alex and Luke Taylor 3.1.4.RELEASE **一、Spring Security 3.1...

    shiro学习资料

    首先,"Apache_Shiro_reference(中文版).pdf"是Shiro的官方中文参考手册。这个文档详细介绍了Shiro的各种组件和API,包括核心概念如Subject、Realms、Caches等,以及认证、授权、会话管理和密码策略等具体功能。通过...

    jboss portal手册

    `Reference_Guide_en-US.pdf`是关于JBoss Portal全面技术细节的参考文档,包括API详解、配置选项、系统架构等深入内容,适合开发者和高级用户查阅。 **8. 用户指南** `User_Guide_en-US.pdf`可能专注于用户界面和...

Global site tag (gtag.js) - Google Analytics