如果还没有Spring LDAP 2.0的jar包,可以参考我的上一篇文章,自己编译Spring LDAP的jar包或直接用上篇文章附件中编译好的jar包。http://mwxx.iteye.com/blog/1997282
Spring LDAP支持以注解的方式声明实体类与LDAP节点的关系,并且提供了相关的示例项目。
像下面的Person类就是用注解方式声明的实体,本文中省略了import和get/set方法。
package org.springframework.ldap.samples.plain.domain; import ...; import javax.naming.Name; /** * Simple class representing a single person. * * @author Mattias Hellborg Arthursson * @author Ulrik Sandberg */ @Entry(objectClasses = {"inetOrgPerson", "organizationalPerson", "person", "top"}) public class Person { @Id private Name dn; @Attribute(name = "cn") @DnAttribute(value = "cn", index = 2) private String fullName; @Attribute(name = "sn") private String lastName; @Attribute(name = "description") private String description; @Transient @DnAttribute(value = "c", index = 0) private String country; @Transient @DnAttribute(value = "ou", index = 1) private String company; @Attribute(name = "telephoneNumber") private String phone; getMethod... setMethod... public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals( this, obj); } public int hashCode() { return HashCodeBuilder .reflectionHashCode(this); } public String toString() { return ToStringBuilder.reflectionToString( this, ToStringStyle.MULTI_LINE_STYLE); } }
如果基于LDAP的应用有很多对象类型,并且每个对象类型又含有很多属性,难道就要一个一个的去创建实体类并增加属性和注解吗?
其实Spring LDAP框架已经给我们提供了一种便捷的方法。就是org.springframework.ldap.odm.tools包下的SchemaToJava.java类。
org.springframework.ldap.odm.tools包没有包含到Spring LDAP编译生成的jar包里,笔者是从Spring LDAP的源码中直接拿到自己项目里使用的。
这个包已经上传到附件了,下载解压把org目录复制到项目src下即可。
再把附件中的freemarker-2.3.19.jar以及commons-cli-1.2.jar两个jar包下载下来引用到项目中。
先在D盘创建ldap文件夹。
笔者自己写了一个工具类,配置好参数就可以调用SchemaToJava批量从LDAP反向生成Java实体类。
package com.mwxx.ldap.sample.prepare; import java.util.ArrayList; import java.util.List; import org.springframework.ldap.odm.tools.SchemaToJava; /** * 这个工具可以把LDAP中的各个节点转换成使用Spring-LDAP注解的实体类 * * @author MwXx * @version 1.0 * @date 2013-12-30 13:51:34 */ public class MwXxSchemaToJava { /** LDAP连接地址URL */ private static final String url = "ldap://127.0.0.1:389"; /** LDAP管理用户 */ private static final String username = "cn=Directory Manager"; /** LDAP管理用户的密码 */ private static final String password = "password"; /** 生成类的基础包路径 */ private static final String basePackage = "com.mwxx.ldap.sample.module."; public static void main(String[] args) { List<String[]> list = new ArrayList<String[]>(); // 主帐号 list.add(new String[] { basePackage + "user.vo", "UserVo", "inetOrgPerson,organizationalPerson,person,top" }); // 组织机构 list.add(new String[] { basePackage + "organization.vo", "OrganizationVo", "organization,top" }); // 用户组 list.add(new String[] { basePackage + "group.vo", "GroupVo", "mwxx-group,top" }); String tempDir = "D:\\ldap\\"; for (String[] item : list) { String[] flags = new String[] { // 连接LDAP的URL "--url", url, // LDAP管理用户 "--username", username, // LDAP管理用户的密码 "--password", password, // 需要反向生成实体类的ObjectClass对象类型,多个可以用英文 ","号分割 "--objectclasses", item[2], // 生成的实体类名 "--class", item[1], // 生成的实体类包路径 "--package", item[0], // 反向生成的输出目录 "--outputdir", tempDir }; SchemaToJava.main(flags); } } }
执行完上面的代码后,D:\\ldap\\目录下就有生成的实体类了。
把D:\\ldap\\里的文件复制到项目src里面就可以使用啦!
参考文档:http://docs.spring.io/spring-ldap/docs/2.0.0.CI-SNAPSHOT/apidocs/
相关推荐
在展现层,系统利用Spring MVC作为MVC框架,Java Server Pages (JSP)生成视图,ExtJS作为JavaScript UI组件库,Spring Security提供安全框架,Jackson负责JSON的生成和解析,而Jersey实现了JAX-RS 2.0规范,用于构建...
- **Spring LDAP**: 用于与LDAP服务器交互的Spring模块。 - **Spring Data JPA**: 一种简化JPA(Java Persistence API)使用的Spring模块。 2. **项目管理工具** - **Maven**: 一个项目管理和综合工具,用于构建...
- **Spring LDAP**:提供了一种简单的方式来访问LDAP目录服务器中的信息。 - **Spring Data JPA**:简化了基于JPA(Java Persistence API)的数据访问层。 2. **项目管理工具** - **Maven**:自动化构建工具,可...
2. 100% Java实现,基于Spring框架,易于集成和扩展,并且可以与acegi(Spring权限控制)配合使用。 3. CAS Server作为一个独立部署的Web应用,负责用户认证。 4. CAS Client支持多种客户端,包括Java、.Net、PHP、...
这些功能可能通过Spring框架实现业务逻辑,使用Hibernate或MyBatis进行数据持久化操作,而前端界面则可能由Struts2、JSF或Spring MVC等MVC模式的框架处理。除此之外,为了提升用户体验,可能会用到Ajax异步请求和...
开发者需要具备扎实的Java基础,熟悉Spring Boot、Spring Cloud等相关框架,并对网络安全和系统运维有一定的了解。通过这样的系统,可以有效提升企业内部或面向公众的在线服务的安全性和便捷性。
后端通常使用如Python的Django或Flask框架,或者Java的Spring Boot等,这些框架支持快速开发并提供丰富的库和功能。服务器端处理HTTP请求,执行业务逻辑,并与数据库交互。 4. **数据库管理**: 数据存储通常使用...
LDAP 配置 请注意,由于 Artifactory OSS 中 REST API 的限制,此工具只能迁移到获得许可的 Artifactory 发行版(Pro、Enterprise 等)。 它不适用于免费发行版(OSS、CE 等)。 安装 该工具通过从磁盘读取 Nexus ...
- **登录**:用户在CAS服务器上输入凭证,如果验证成功,CAS服务器生成服务票据(ST)。 - **服务验证**:用户被重定向回应用A,并携带服务票据。应用A向CAS服务器发送服务票据进行验证。 - **授权**:CAS服务器...
在Ansible部署过程中,需要确保Nginx或Apache等Web服务器安装并配置为反向代理,指向Icinga2的API端点。此外,还需要设置正确的认证机制,如使用HTTP Basic Auth或LDAP集成。 五、持续监控与优化 部署完成后,你...