仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1235|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA教程之给人人一个ldap例子

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:37 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?/*1.从LDAP服务器中提取经常使用名cn、可辨别名字uid、暗码userpassword、Email地点mail
*个中利用NetscapeLDAP服务器作为测试情况,利用simple认证体例登录LDAP服务器。
*2.用定名‘admin’暗码是‘1’,全部程序利用SDK1.4.1中的JNDI尺度接口。
*3.为了共同DOMINO数据库开辟,假定用户登录时分的IP地点已纪录在了字段uid中,并用‘,’离隔
*程序终极将打印一个包含一切用户名,暗码,IP地点的字符串。
*4.在处置分别用户名和IP地点的时分,引进了正则表达式的利用。
*/
packagemm;

//引进LDAP的包
importjava.lang.*;
importjava.util.Hashtable;
importjava.util.Enumeration;
importjavax.naming.*;
importjavax.naming.directory.*;
//importmm.splitString;

publicclassJNDISearch{
publicstaticStringINITCTX="com.sun.jndi.ldap.LdapCtxFactory";//驱动
publicstaticStringMY_HOST="ldap://localhost:389";//主机地点和端口
publicstaticStringMY_SEARCHBASE="o=airius.com";//基点出口
publicstaticStringMY_FILTER="(mail=west)";//过滤前提
publicstaticStringMGR_DN="uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";//用户名
publicstaticStringMGR_PW="1";//暗码
publicstaticStringMY_ATTRS[]={/*"cn","userpassword","mail",*/"cn"};
//StringBufferres=newStringBuffer();//用来输出名字,IP地点的对象
publicstaticStringtemp=newString();


publicStringsearch()throwsException{
StringBufferres=newStringBuffer();
try{
//创建毗连
Hashtableenv=newHashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple");//利用复杂认证来认证用户
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContextctx=newInitialDirContext(env);

//设置查询局限并入手下手查询
SearchControlsconstraints=newSearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumerationresults=ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);

//打印查询了局
while(results!=null&&results.hasMore()){
SearchResultsr=(SearchResult)results.next();
//Stringdn=sr.getName();
Stringdn=sr.getName()+","+MY_SEARCHBASE;
System.out.println("==============================================");
System.out.println("DistinguishedNameis:"+dn);

//打印指定的字段//////////////////////////////////////////////////////////////////
Attributesar=ctx.getAttributes(dn,MY_ATTRS);
if(ar==null){
//对应的uid没有过剩的属性
System.out.println("Entry"+dn+"hasnoneofthespecifiedattributes
");
}else{
//入手下手显现对应的字段
for(inti=0;i<MY_ATTRS.length;i++){
Attributeattr=ar.get(MY_ATTRS[i]);
if(attr!=null){
System.out.print(MY_ATTRS[i]+":");
for(Enumerationvals=attr.getAll();
vals.hasMoreElements();){
temp=(String)vals.nextElement();
System.out.println("        "+temp);
res.append(temp+"/");
}
}
System.out.println("
");
}
///////////////////////////////////////////////////////////////////////////////////


/*打印全体的字段///////////////////////////////////////////////////////////////////
Attributesattrs=sr.getAttributes();
for(NamingEnumerationne=attrs.getAll();
ne.hasMoreElements();){
Attributeattr=(Attribute)ne.next();
StringattrID=attr.getID();
System.out.println(attrID+":");
for(Enumerationvals=attr.getAll();vals.hasMoreElements();){
System.out.println("        "+vals.nextElement());
}
*//////////////////////////////////////////////////////////////////////////////////
}
}
}catch(Exceptione){
e.printStackTrace();
System.exit(1);
}
System.out.println(res.toString()+"



");

//splitStringsp=newsplitString();
//System.out.println("一共有"+sp.splitString(res.toString()).length+"个前往");//打印显现了局,盘算前往的数组值
//returnsp.splitString(res.toString());
returnres.toString();

}

///////////////////////////////////////////////////////////////////////////////////////////
//利用正则表达式来分拣提取的字符串///////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

}


java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
沙发
 楼主| 发表于 2015-1-26 05:32:37 | 显示全部楼层
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-13 06:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表