- 浏览: 190350 次
- 性别:
文章分类
最新评论
-
路人甲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 3195package jaxp; import java.io.B ... -
通过BOM探测文本文件编码类型
2008-01-24 15:19 2394从tomcat源码抄来的改的: private Object ... -
java mail 纯文本附件乱码的解决方案
2008-01-24 15:16 6128java mail在发送纯文本附件时,当附件内容的编码和jvm ... -
ntdsutil设置AD查询返回最大条目
2008-01-18 16:56 1732AD缺省的最大查询结果为1000个,如果超过1千个,则需要客户 ... -
struts2-layout
2007-11-09 18:17 51testvvvv -
Http基本明文验证
2007-06-13 12:55 1856base64解码使用了novell的实现 java 代码 ... -
如何启用活动目录SSL连接
2007-06-13 10:49 3430ad:http://www.cnblogs.com/chnki ... -
AD User重要属性
2007-06-11 14:55 2188objectClass=User User-Account ... -
添加用户、修改ad密码
2007-06-11 11:28 15842java 代码 /** * ... -
JNDI 连接Windows Active Directory 教程(转)
2007-06-08 16:36 3280个人收藏,来源:http:// ... -
正确认识memcached的缓存失效
2007-05-29 10:56 9630最近javaeye上memcached相当火,不少人把它当作s ... -
webwork结合memcached实现sna架构
2007-05-28 14:04 5795实现思路,使用一个拦截器实现session的处理: ... -
activemq实验
2007-05-17 11:37 2129实验环境:activemq4.1.1/spring1.2.8 ... -
发现用Spring配置事务不爽的一个地方
2007-05-11 16:41 2039举个例子: SomeService implement I ... -
Java Transaction Design Strategies读书笔记
2007-05-14 15:34 2423第一种:Client Owner Transaction Ma ... -
有谁知道银行的跨行转帐是怎么保证交易的原子性和一致性?
2007-05-10 09:18 23045最近在看《Java Transaction Design St ... -
InnerClass引用的外层local final变量,究竟具有什么语义
2006-12-21 18:04 6660先看这段代码: public class ShowAnon ...
相关推荐
通过LDAPoverSSL访问AD,可忽略证书,亲测可通,AD证书过期以及无效均可以正常访问,依赖WLdap32库,下载可自行修改AD地址和账户进行测试
先决条件AD服务器具有读/写访问权限的AD中的auth-app帐户主机(在JVM的keystore中)和服务器上的LDAPS证书: 192.168.151.10 ad-grsu.grsu.local 您的hosts文件中应该有ad-grsu.grsu.local记录.\keytool.exe -...
kibana-auth-proxy 旨在用作Authelia的forwardAuth代理(可能还进行了其他测试,例如nginx,未经测试),以便使用LDAP / Active Directory在Elasticsearch中进行用户访问而无需付费订阅。 请求去特拉菲克Traefik将其...
C++通过ADSI接口访问AD服务器的测试代码,只实现了用户遍历和查找特定用户的功能。
这是一个快速的成功,没有花太多时间进行泛化或测试。 拉请求将是受欢迎的! 职能: Test-LDAPQueryLoggingPrerequisites :检查域控制器是否满足此日志记录的先决条件Enable-LDAPQueryLogging :启用诊断日志记录...
添加ldap支持嵌套组中的AD成员值; 修复EncFS; 确保unserialized对象是Notification实例; 将lite版本切换到完整版; 修复webDAV上传事件。应该修复#1317并修复#1318; 通过检查空的$ pwd变量替换检查bypass...
6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194...
6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194...