下载地址 :http://www.springframework.org/ldap
用Spring LDAP最少需要:
- spring-ldap(spring-ldap包)
- spring-core(用于框架内部的丰富的工具类)
- spring-beans(方便操作java beans的接口和类)
- spring-context(增加通过一致API为应用对象获取资源的能力)
- spring-dao(使经常性的错误处理跟使用中的数据访问分开的异常处理机制)
- commons-logging(简单的日志处理,内部使用)
UserDaoLdapImpl
package com.kingsoft.ldap;
import java.util.List;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;
import cn.com.ldap.Preson.Person;
/**
* @author King_wangyao
*/
public class UserDaoLdapImpl {
private LdapTemplate ldapTemplate;
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public List getAllPersonNames() {
return ldapTemplate.search("", "(objectclass=person)",
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}
}
preson:
package com.kingsoft.ldap;
public class Preson {
public class Person {
private String cn;
private String sn;
public String getCn() {
return cn;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://192.168.16.XXX:389" />
<property name="base" value="OU=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX" />
<property name="userName" value="XXX@headquarter" />
<property name="password" value="XXX" />
</bean>
<bean id="ldapTemplate"
class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="userDao" class="cn.com.ldap.UserDaoLdapImpl">
<property name="ldapTemplate">
<ref bean="ldapTemplate" />
</property>
</bean>
</beans>
main:
public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoLdapImpl userDao = (UserDaoLdapImpl)cxt.getBean("userDao");
List users = userDao.getAllPersonNames();
System.out.println(users.size());
}
分享到:
相关推荐
LDAP 中的类型的一个例子就是 mail,其值将是一个电子邮件地址。LDAP 的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织(organization)(o=Acme)或组织...
它使用了 Spring LDAP 中的许多有用概念,并将作为最佳实践和各种有用技巧的一个很好的例子。LDAP 中的用户和组LDAP 中的用户通常表示为 LDAP 树中的organizationalPerson或inetOrgPerson条目。 这些条目中的属性...
首先,在SpringBoot项目中引入`spring-boot-starter-security`和`spring-ldap-core`依赖。接着,配置`application.properties`或`application.yml`以指定LDAP服务器的URL、基DN和其他参数。 ```yaml spring: ...
Spring LDAP 是一个强大的Java库,它为开发人员提供了一个简单且直观的接口,用于与LDAP(轻量级目录访问协议)服务器进行交互。在本文中,我们将深入探讨Spring LDAP 1.3.0版本,包括它的特点、用途、安装过程以及...
这个"springldap例子"可能是为了展示如何配置和使用Spring LDAP进行开发。让我们深入了解一下Spring LDAP以及如何在实际项目中应用它。 Spring LDAP是一个模块化的框架,它为开发人员提供了在Java应用中集成LDAP...
- `spring-security-cache-control` 提供了如何集成Spring Security与HTTP缓存策略的例子。理解如何防止敏感数据被缓存,确保只有经过身份验证的用户才能访问特定资源,这对于Web应用的安全性至关重要。 3. **...
此外,Spring Security支持多种认证和授权机制,如LDAP、数据库、OAuth2等。你也可以自定义认证和授权逻辑,通过实现特定的接口或继承已有的类。 总结一下,Spring Security 3.x入门涉及以下几个主要步骤: 1. ...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。...同时,这个例子也是一个很好的学习资源,帮助开发者掌握如何配置、定制和扩展Spring Security以满足特定的安全需求。
本文将通过一个入门级的例子,详细介绍如何利用Spring LDAP和JNDI进行增删改查操作。 ### Spring LDAP简介 Spring LDAP是Spring框架的一个扩展,它为LDAP(Lightweight Directory Access Protocol)提供了一个面向...
在本文中,我们将探讨如何使用Spring框架来实现LDAP(轻量级目录访问协议)域认证。这是一项重要的技术,特别是对于那些希望集中管理和验证多个应用系统账号密码的企业而言。通过集成Spring与LDAP,我们可以实现一个...
- `ldap-spring-security-ldap.jar`:提供了 LDAP 集成的支持。 - `acl-spring-security-acl.jar`:实现了访问控制列表 (ACL) 功能。 - `cas-spring-security-cas-client.jar`:集成了 CAS 单点登录协议。 - `...
在Spring Security中,这通常通过用户名和密码完成,可以使用内存中的用户详情服务或者连接到外部身份验证源如数据库或LDAP。 2. 授权:一旦用户通过身份验证,就需要确定他们是否有权限访问特定资源。Spring ...
- Spring Security支持多种认证源,如数据库、LDAP、内存中等。你可以通过`UserDetailsService`接口实现自定义的用户加载逻辑。 - 角色通常是字符串(如"ROLE_USER", "ROLE_ADMIN"),并可以关联到用户。 4. **...
- **LDAP (spring-security-ldap.jar)**: 支持 LDAP 认证和授权。 - **ACL (spring-security-acl.jar)**: 提供基于 ACL 的访问控制列表管理。 - **CAS (spring-security-cas.jar)**: 支持 CAS 单点登录协议。 - **...
spring-cloud-microservice-in-action spring cloud 例子 ctoedu-dubbo dubbo rest ctoedu-dubbo-demo 使用dubbo注解方式 mybatis 简单的mybatis例子(初学) ctoedu-ldap 基于ldap实现 ctoedu-jap-example jpa 多对...
它可以与多种认证源(如数据库、LDAP、JAAS等)集成,支持自定义认证和授权逻辑,以及复杂的访问控制策略。例如,你可以定义基于角色的访问控制(RBAC)、表达式式访问控制(ACE)或者自定义访问决策策略。此外,...
spring-cloud-microservice-in-action spring cloud 例子 ctoedu-dubbo dubbo rest ctoedu-dubbo-demo 使用dubbo注解方式 mybatis 简单的mybatis例子(初学) ctoedu-ldap 基于ldap实现 ctoedu-jap-example jpa 多对...
spring-cloud-microservice-in-action spring cloud 例子 ctoedu-dubbo dubbo rest ctoedu-dubbo-demo 使用dubbo注解方式 mybatis 简单的mybatis例子(初学) ctoedu-ldap 基于ldap实现 ctoedu-jap-example jpa 多对...
3.3. LDAP例子 3.4. CAS例子 3.5. Pre-Authentication例子 4. Spring Security社区 4.1. 任务跟踪 4.2. 成为参与者 4.3. 更多信息 II. 结构和实现 5. 技术概述 5.1. 运行环境 5.2. 核心组件 5.2.1. ...