- 浏览: 192637 次
- 性别:
文章分类
最新评论
-
路人甲wxf:
.net可以在不使用证书的情况下修改密码,java做不到吗?
添加用户、修改ad密码 -
zxsosozhuzhu:
你好,我也遇到这个问题了,但是按照你的方法还是附件中文还是乱码 ...
java mail 纯文本附件乱码的解决方案 -
balaschen:
can4you 写道 请教问题:你好,请教一个问题,我现在要模 ...
spring2.0事务配置实验 -
can4you:
/**
* Created: 2007-2-1
* ...
FreeMarker解析字符串模板 -
can4you:
请教问题:你好,请教一个问题,我现在要模拟两个事务同时更新一 ...
spring2.0事务配置实验
java 代码
java 代码
- /**
- * $Revision: 1.0 $
- * Created: 2007-6-8
- * $Date: 2007-6-8 $
- *
- * Author: Keven Chen
- */
- package ldap;
- import java.util.Enumeration;
- import java.util.Properties;
- import javax.naming.Context;
- import javax.naming.NamingEnumeration;
- import javax.naming.NamingException;
- import javax.naming.ReferralException;
- import javax.naming.directory.Attribute;
- import javax.naming.directory.Attributes;
- import javax.naming.directory.BasicAttribute;
- import javax.naming.directory.DirContext;
- import javax.naming.directory.InitialDirContext;
- import javax.naming.directory.ModificationItem;
- import javax.naming.directory.SearchControls;
- import javax.naming.directory.SearchResult;
- /**
- * @author Keven Chen
- * @version $Revision 1.0 $
- *
- */
- public class JndiLdap {
- private static final String SUN_JNDI_PROVIDER = "com.sun.jndi.ldap.LdapCtxFactory";
- private static final String IBM_JNDI_PROVIDER = "com.ibm.jndi.LDAPCtxFactory";
- public static void main(String[] args) throws Exception {
- DirContext ctx = null;
- try{
- ctx = ldapConnection();
- list(ctx);
- System.out.println("/////////////////");
- getEntry("CN=keven,CN=users,DC=comwave,DC=com", ctx);
- enableUser(ctx,"CN=bribin,OU=bpm,DC=comwave,DC=com");
- } finally{
- if(ctx !=null){
- ctx.close();
- }
- }
- }
- private static void getEntry(String dn,DirContext ctx){
- //Name
- try {
- Attributes attrs = ctx.getAttributes(dn);
- for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements();) {
- Attribute attr = (Attribute)ae.next();
- String attrId = attr.getID();
- for (NamingEnumeration vals = attr.getAll(); vals.hasMore();) {
- String thing = vals.next().toString();
- System.out.println(attrId + ": " + thing);
- }
- }
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
- private static void disableUser(DirContext ctx,String user) throws NamingException{
- int UF_ACCOUNTDISABLE = 0x0002;
- int UF_NORMAL_ACCOUNT = 0x0200;
- ModificationItem[] mods = new ModificationItem[1];
- mods[0]= new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT + UF_ACCOUNTDISABLE)));
- ctx.modifyAttributes(user, mods);
- }
- private static void enableUser(DirContext ctx,String user) throws NamingException{
- int UF_ACCOUNTDISABLE = 0x0002;
- int UF_NORMAL_ACCOUNT = 0x0200;
- ModificationItem[] mods = new ModificationItem[1];
- mods[0]= new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT)));
- ctx.modifyAttributes(user, mods);
- }
- private static void list(DirContext ctx){
- boolean moreReferrals = true;
- while(moreReferrals) {
- try{
- for(NamingEnumeration results = search(ctx); results.hasMore();)
- {
- SearchResult si = (SearchResult)results.next();
- System.out.println(si.getName());
- Attributes attrs = si.getAttributes();
- if (attrs == null) {
- System.out.println("No attributes");
- continue;
- }
- NamingEnumeration ae = attrs.getAll();
- while (ae.hasMoreElements()) {
- Attribute attr =(Attribute)ae.next();
- String id = attr.getID();
- Enumeration vals = attr.getAll();
- while (vals.hasMoreElements())
- System.out.println(" "+id + ": " + vals.nextElement());
- }
- }
- moreReferrals = false;
- }catch (ReferralException e){
- /*myurl = getReferralUrl(e);
- if(myurl.getDN().length() == 0)
- {
- myurl.setDN(baseDN);
- name = url.getDN();
- } else
- {
- name = getName(myurl.getDN());
- }
- name = name + " [" + myurl.getHost() + ":" + myurl.getPort() + "]";
- t = new TreeNode2(name, myurl);
- checkLeaf(t, null);
- node.add(t);*/
- moreReferrals = e.skipReferral();
- try
- {
- ctx = (DirContext)e.getReferralContext();
- }
- catch(NamingException _ex) { }
- }catch (NamingException e){
- e.printStackTrace();
- moreReferrals = false;
- }
- }
- }
- private static NamingEnumeration search(DirContext ctx) throws NamingException {
- SearchControls search = new SearchControls();
- search.setSearchScope(SearchControls.SUBTREE_SCOPE);
- String attrList[] = {"cn","distinguishedName"};//memberOf,member,distinguishedName,lockoutTime>1
- search.setReturningAttributes(attrList);
- search.setCountLimit(0);
- search.setTimeLimit(0);
- String filter = "(sAMAccountName=brib*)";//(objectClass=*)
- NamingEnumeration results = ctx.search("dc=comwave,dc=com",filter,search);
- return results;
- }
- private static void ldapSearch(DirContext ctx) throws NamingException {
- SearchControls search = new SearchControls();
- search.setSearchScope(SearchControls.ONELEVEL_SCOPE);
- String attrList[] = {"cn"};//memberOf,member,distinguishedName,lockoutTime>1
- search.setReturningAttributes(attrList);
- search.setCountLimit(0);
- search.setTimeLimit(0);
- NamingEnumeration results = ctx.search("dc=comwave,dc=com","(objectClass=*)",search);
- while (results.hasMore()) {
- SearchResult si =(SearchResult)results.next();
- System.out.println(si.getName());
- /*Attributes attrs = si.getAttributes();
- if (attrs == null) {
- System.out.println("No attributes");
- continue;
- }
- NamingEnumeration ae = attrs.getAll();
- while (ae.hasMoreElements()) {
- Attribute attr =(Attribute)ae.next();
- String id = attr.getID();
- Enumeration vals = attr.getAll();
- while (vals.hasMoreElements())
- System.out.println(" "+id + ": " + vals.nextElement());
- } */
- }
- }
- private static DirContext ldapConnection() throws Exception {
- Properties env = new Properties();
- env.put(Context.INITIAL_CONTEXT_FACTORY, SUN_JNDI_PROVIDER);//java.naming.factory.initial
- env.put(Context.PROVIDER_URL, "ldap://192.168.1.32:389");//java.naming.provider.url
- env.put(Context.SECURITY_AUTHENTICATION, "simple");//java.naming.security.authentication
- env.put(Context.SECURITY_PRINCIPAL, "administrator@comwave.com");//java.naming.security.principal
- env.put(Context.SECURITY_CREDENTIALS, "yourpassword");//java.naming.security.credentials
- env.put(Context.REFERRAL, "throw");
- DirContext ctx = null;
- try {
- ctx = new InitialDirContext(env);
- } catch (NamingException e) {
- throw new Exception(e);
- }
- return ctx;
- }
- }
- ldap_doc.rar (316.7 KB)
- 下载次数: 285
- ldap_ad.zip (10.3 KB)
- 下载次数: 213
发表评论
-
利用sax和xslt转换csv文件内容
2008-02-03 15:57 3237package jaxp; import java.io.B ... -
通过BOM探测文本文件编码类型
2008-01-24 15:19 2442从tomcat源码抄来的改的: private Object ... -
java mail 纯文本附件乱码的解决方案
2008-01-24 15:16 6251java mail在发送纯文本附件时,当附件内容的编码和jvm ... -
ntdsutil设置AD查询返回最大条目
2008-01-18 16:56 1787AD缺省的最大查询结果为1000个,如果超过1千个,则需要客户 ... -
struts2-layout
2007-11-09 18:17 51testvvvv -
Http基本明文验证
2007-06-13 12:55 1904base64解码使用了novell的实现 java 代码 ... -
如何启用活动目录SSL连接
2007-06-13 10:49 3481ad:http://www.cnblogs.com/chnki ... -
AD User重要属性
2007-06-11 14:55 2243objectClass=User User-Account ... -
添加用户、修改ad密码
2007-06-11 11:28 15892java 代码 /** * ... -
JNDI 连接Windows Active Directory 教程(转)
2007-06-08 16:36 3312个人收藏,来源:http:// ... -
正确认识memcached的缓存失效
2007-05-29 10:56 9664最近javaeye上memcached相当火,不少人把它当作s ... -
webwork结合memcached实现sna架构
2007-05-28 14:04 5851实现思路,使用一个拦截器实现session的处理: ... -
activemq实验
2007-05-17 11:37 2183实验环境:activemq4.1.1/spring1.2.8 ... -
发现用Spring配置事务不爽的一个地方
2007-05-11 16:41 2082举个例子: SomeService implement I ... -
Java Transaction Design Strategies读书笔记
2007-05-14 15:34 2462第一种:Client Owner Transaction Ma ... -
有谁知道银行的跨行转帐是怎么保证交易的原子性和一致性?
2007-05-10 09:18 23340最近在看《Java Transaction Design St ... -
InnerClass引用的外层local final变量,究竟具有什么语义
2006-12-21 18:04 6704先看这段代码: public class ShowAnon ...
相关推荐
通过 LDAP,AD 可以提供认证和授权服务,使得其他系统(如 WebLogic)能够验证用户身份并根据权限控制访问。 **2. WebLogic 配置 LDAP 认证** WebLogic 支持多种身份验证机制,其中之一就是 LDAP。配置 LDAP 认证...
8. **测试连接**:使用LdapBrowser或其他工具验证服务器的可访问性和数据的正确性。 **使用LdapBrowser 2.82版** 1. **连接设置**:在LdapBrowser中输入服务器地址、端口、认证方式等信息,建立连接。 2. **浏览...
4. **权限控制**:adLDAP支持检查用户在AD中的角色和权限,这在实现访问控制策略时非常有用。 5. **易用性**:adLDAP通过提供简单的PHP接口,降低了与AD交互的复杂性,使得非熟悉LDAP的开发者也能轻松使用。 尽管...
4. **集成开发**:对于开发人员,ApacheDirectoryStudio 可以作为测试和调试 LDAP 应用程序的工具,以便于构建与 AD 集成的解决方案。 总结,ApacheDirectoryStudio 是一款功能强大的 LDAP 连接工具,尤其适合于...
LDAP,轻量级目录访问协议,是一种用于访问和管理分布式目录服务的标准协议。它允许用户和应用程序查找、修改和管理存储在网络中的用户信息和资源。在本配置中,我们将深入探讨如何配置LDAP与流控联动进行认证管理,...
标题 "ldap连接测试工具源代码C#版" 涉及到的是一个使用C#编程语言开发的 LDAP(轻量级目录访问协议)连接测试工具。这个工具的主要功能是允许用户进行域用户信息的读取、域结构的探索以及登录验证。在Windows环境下...
Java操作LDAP(轻量级目录访问协议)是企业级应用中常见的任务,特别是在管理AD(活动目录)域用户时。本项目提供了一种便捷的方式,允许开发者在Java环境中创建、管理和更新AD域中的用户信息,并且可以直接在...
此外,Apache Directory Studio 支持 LDAP v3 标准,兼容多种 LDAP 服务器,包括 ApacheDS、OpenLDAP 和 Microsoft AD。 ### 2. JXplorer JXplorer 是一个轻量级且跨平台的 LDAP 浏览器,适用于 Windows、Linux 和...
AD(活动目录)是微软实现的LDAP目录服务,广泛应用于Windows环境,提供用户身份验证、权限管理和资源访问控制。 **Laravel Eloquent LDAP的实现原理** 这个扩展可能包含以下主要部分: 1. **模型扩展**:可能会...
7. **测试和调试**:进行测试以确保配置正确,并能正常与AD服务器通信。 通过理解和实践这些步骤,开发者可以将Java应用程序与AD集成,实现安全、高效的身份验证和目录服务访问。在实际项目中,这通常涉及到与企业...
然而,当我们涉及到更复杂的身份验证需求时,比如结合内部数据库与LDAP(轻量级目录访问协议)或AD(活动目录)服务器,Laravel的开箱即用功能可能不足以满足。这就是"Laravel开发-eloquent-ldap"包的作用所在。 这...
**LDAP(轻量目录访问协议)**是一种开放标准的网络协议,用于访问和管理分布式目录服务。它允许用户和应用程序通过简单的命名系统查找、检索、修改和管理存储在网络中的信息。在Windows环境下设置和使用LDAP服务是...