`

Work with SSL/LDAP Using Java

 
阅读更多
引用http://www.devx.com/tips/Tip/39936


Work with SSL/LDAP Using Java

Most applications nowadays authenticate through LDAP (directory service). To set this up, first register the SSL certificate using the keytool utility, as shown below:

Register ssl certificate using keytool:
keytool -import -alias <certname> -file <filename.crt> -keystore "..yourpath\java\jre\lib\security\cacerts"

The following code shows how to connect to LDAP and display the values specific to a username:

..class name..
..
public static void main(String args[]){

String keystore = System.getProperty("" + "/lib/security/cacerts");
System.setProperty(LDAPConstants.LDAP_SSL_TRUST_STORE,keystore);

try{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://yourservername:636");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PROTOCOL, "ssl");

env.put(Context.SECURITY_PRINCIPAL, "yourusername");
env.put(Context.SECURITY_CREDENTIALS, "yourpassword");
				
dirCtx = new InitialLdapContext(env, null);

NamingEnumeration ne = null;
SearchControls controls =  new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
ne = dirCtx.search("OU=Users,DC=yourcompany, DC=com, DC=au","userName="+userName,controls);

 if (ne != null) {
  if (ne.hasMore()) {
    SearchResult item = (SearchResult) ne.next();
	display(item.getAttributes());
  }

}catch(javax.naming.AuthenticationException e){
  e.printStackTrace();
}catch(NamingException e) {
  e.printStackTrace();
}
}
private static void display(Attributes attr) throws NamingException{
  NamingEnumeration ne = attr.getAll();
  while(ne.hasMore()){
	Attribute  obj = (Attribute)ne.next();
	System.out.println(obj.getID()+"\t"+(String)obj.get(0));
  }
}
....
...

分享到:
评论

相关推荐

    基于SSL的ldap安全访问AD认证

    基于SSL的LDAP安全访问AD认证 基于SSL的LDAP安全访问AD认证是指使用SSL(Secure Sockets Layer)协议来保护LDAP(Lightweight Directory Access Protocol)协议与AD(Active Directory)的通信,使得密码在网络中...

    JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查.zip

    本文将深入探讨如何使用Java通过LDAP(轻量级目录访问协议)和SSL(安全套接层)来实现用户和组织(部门)的增删改查操作,并结合证书确保通信的安全性。这些功能通常用于大型企业的用户管理,例如Active Directory...

    java连接LDAP的jar包和实例

    这个主题涉及几个关键知识点,包括Java LDAP API、SSL安全连接以及如何通过代码操作LDAP目录。 首先,LDAP是一个开放标准的协议,用于存储和检索用户、组、计算机等对象的数据。这些数据通常分布在多台服务器上,...

    DzzOffice AD/LDAP账户认证

    DzzOffice通过集成AD/LDAP插件,实现了用户信息的自动同步和身份验证功能。用户能够使用他们在Active Directory(AD)或Lightweight Directory Access Protocol(LDAP)中的账户和密码直接登录DzzOffice,无需在...

    Go-使用Golang编写基于LDAP的Web应用程序

    你可以通过`go get`命令安装第三方的LDAP库,例如`github.com/go-ldap/ldap/v3`。 接下来,我们需要实现几个核心功能: 1. 连接 LDAP 服务器:使用`ldap.Dial`函数创建到LDAP服务器的连接,通常包括主机名和端口。 ...

    LDAP_programming_With_Java.zip_java ldap_java ldap_java program

    《LDAP编程与Java》这本书是关于使用Java进行 Lightweight Directory Access Protocol (LDAP) 开发的指南。LDAP是一种开放标准的网络协议,用于访问和管理分布式目录服务。它在企业级应用中广泛使用,如用户身份验证...

    Ubuntu+svn+ssl+ldap

    【Ubuntu+svn+ssl+ldap】的安装及集成是一个复杂的过程,涉及到Ubuntu操作系统、Subversion (SVN) 版本控制系统、SSL安全套接层以及Lightweight Directory Access Protocol (LDAP) 用户认证。以下是对这些技术的详细...

    loginServer CAS / josso / LDAP / RBAC / ACL

    2. **JOSSO(Java Open Single Sign-On)**:JOSSO 是一个基于 Java 的开放源代码单点登录解决方案,旨在提供一种简单、统一的方式来管理和控制企业环境中用户的访问权限。它支持多种身份验证协议,包括 CAS,使得...

    备用DNS服务器:可选的SQL / LDAP后端Alternative DNS Servers: Optional SQL/LDAP Back-Ends

    在讨论DNS服务器的配置与部署时,会涉及到DNS信息存储的多种方式,其中一种方式是利用LDAP目录服务或SQL数据库。这种做法主要是为了增强DNS系统的健壮性和扩展性。LDAP目录服务是一种用于存储和检索信息的轻型目录...

    JAVA中使用LDAP进行用户认证

    JAVA中使用LDAP进行用户认证 JAVA中使用LDAP进行用户认证是指在JAVA应用程序中使用轻量级目录访问协议(LDAP)来进行用户身份验证。LDAP是一种基于X.500标准的目录访问协议,但它更简单、更灵活,可以根据需要进行...

    java使用ldap修改ad域用户密码收集.pdf

    8、在编写 Java 代码时,需要使用 Hashtable 对象来存储 LDAP 连接的参数,使用 Socket 对象来连接 LDAP 服务器,并使用 SSL/TLS 加密协议来确保密码修改的安全性。 9、在编写 Java 代码时,需要使用相关的 LDAP ...

    LDAP搭建及其Java代码连接

    **LDAP搭建及其Java代码连接** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,主要用于存储和检索用户信息、组织结构等元数据。它采用层次化的树状结构,便于管理和查找。在IT领域,...

    java使用ldap修改ad域用户密码

    然后,我们需要安装证书服务,以便提供 SSL/TLS 加密通道。 安装 JAVA 应用服务器 最后,我们需要安装 JAVA 应用服务器,以便使用 Java 语言连接到 Active Directory 域控制器。 导出域根证书和计算机证书 在...

    debian下ldap服务器配置

    安装完成后,需要编辑配置文件 `/etc/ldap/slapd.conf`。使用以下命令打开编辑器: ``` # vim /etc/ldap/slapd.conf ``` 在编辑器中,添加以下内容: ``` include /etc/ldap/schema/core.schema include /etc/ldap/...

    LDAP java 操作

    IBM Directory Server LDAP v3提供了高级功能,如索引、访问控制、SSL加密和审计日志。在Java编程时,可以利用这些特性增强应用程序的安全性和性能。 ### 7. 结论 通过JNDI与Java结合,开发者可以轻松地实现对IBM ...

    java连接和验证ldap文档

    Java 连接和验证 LDAP 文档 Java 连接和验证 LDAP 文档是一份关于 Java 语言连接和验证 LDAP 服务器的学习文档。LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,用于管理和访问目录服务中的...

    java操作ldap类

    java操作ldap类java操作ldap类java操作ldap类

    3.3.01_LDAP Java API 使用指南.doc

    在Java中,可以使用Java LDAP API来与LDAP服务器进行交互,执行查询、添加、删除、修改等操作。本指南将详细介绍如何使用Java LDAP API。 ### 1. LDAP简介 LDAP目录服务是一种存储组织数据的方式,它不同于传统的...

    CentOS上安装LDAP,Java访问LDAP数据。

    编辑 `/etc/openldap/slapd.conf` 或 `/etc/ldap/slapd.d/cn=config` 目录下的配置文件,根据你的需求设置用户、组、DNS域名等信息。 4. **导入数据**: 使用LDIF(LDAP Data Interchange Format)文件导入用户和...

    PHP-Push-2, 使用 caldav/ldap支持的Z 推送 fork.zip

    PHP-Push-2, 使用 caldav/ldap支持的Z 推送 fork PHP-Push-2PHP-Push-2是 z 推送 -2的modiefied版本,这是开源ActiveSync实现,带有CalDAV和多项目支持。特性使用"组合后端"php-push-2支持以下功能:邮件- IMAP日历-

Global site tag (gtag.js) - Google Analytics