日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

遍历查询ldap服务器用户

發(fā)布時(shí)間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遍历查询ldap服务器用户 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

準(zhǔn)備工作:使用openldap搭建server 過(guò)程略

名詞

DN = Distinguished Name
DC = Domain Component
OU = Organization Unit
CN = Common Name
RDN = Relative DN
UID = User ID

1.初始化

??? protected static int init() {
?? ??? ?int flag = 0;
?? ??? ?try {
?? ??? ??? ?ldapHost = "192.168.1.1";
?? ??? ??? ?ldapNameAll = "ldap://" + ldapHost;
?? ??? ??? ?ldapPort = 389;
?? ??? ??? ?rootEntry ="dc=sysu,dc=edu,dc=cn";
?? ??? ??? ?rootdn = "uid=rgsam,ou=hosts,dc=sysu,dc=edu,dc=cn";
?? ??? ??? ?rootpw = "111";???? ????
?? ??? ??? ?Hashtable env = new Hashtable();
?? ??? ??? ?env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
?? ??? ??? ?env.put(Context.PROVIDER_URL, ldapNameAll + ":" + ldapPort);
?? ??? ??? ?env.put("com.sun.jndi.ldap.connect.timeout", "3000");
?? ??? ??? ??? ?if (rootdn != null && !rootdn.equals("") && rootpw != null && !rootpw.equals("")) {
?? ??? ??? ??? ??? ?env.put(Context.SECURITY_AUTHENTICATION, "simple");
?? ??? ??? ??? ??? ?env.put(Context.SECURITY_PRINCIPAL, rootdn);
?? ??? ??? ??? ??? ?env.put(Context.SECURITY_CREDENTIALS, rootpw);
?? ??? ??? ??? ?}
?? ??? ??? ?ctx = new InitialDirContext(env);
?? ??? ?} catch (Exception e) {
?? ??? ??? ?flag = -1;
?? ??? ?}
?? ??? ?//返回初始化是否成功的標(biāo)志位
?? ??? ?return flag;
?? ?}

?

2.遍歷查詢(xún)

??? protected static int getProcessResultBatch(DirContext ctx,int limit) {
? ??? ??? ?try {
? ??? ??? ??? ?String userObjectClass = "eduPerson";
? ??? ??? ??? ?String userIdAttrName ="uid";
? ??? ??? ??? ?String userPwdAttrName = "userPassword";
? ??? ??? ??? ?String userAccessTimeAttrName ="radiusExpiration";
? ??? ??? ??? ?String ldapFilter = "";
? ??? ??? ??? ?String ldapPassword = null;
? ??? ??? ??? ?String ldapAccessTime = null;
? ??? ??? ??? ?String[] attrList = null;
? ??? ??? ??? ?String rootEntry="dc=sysu,dc=edu,dc=cn";
? ??? ??? ??? ?
? ??? ??? ??? ?String searchFilter = "(&(objectClass=" + userObjectClass +? "))";
? ??? ??? ??? ?//Filter可自定義,一旦定義了Filter則ObjectClass就無(wú)效了
? ??? ??? ??? ?if (ldapFilter != null && !ldapFilter.equals("")) {
? ??? ??? ??? ??? ?//searchFilter = StringUtil.str_replace(ldapFilter, "%{User-Name}", userId);
? ??? ??? ??? ?}
? ??? ??? ????
? ??? ??? ??? ??? ?attrList = new String[] {userPwdAttrName, userAccessTimeAttrName};
? ??? ??? ??? ?
? ??? ??? ??? ?String dn = null;
? ??? ??? ??? ?NamingEnumeration ne = null;
? ??? ??? ??? ?try {
? ??? ??? ??? ??? ?SearchControls controls = new SearchControls(SearchControls.SUBTREE_SCOPE, limit, 0, attrList, false, false);
? ??? ??? ??? ??? ?ne = ctx.search(rootEntry, searchFilter, controls);
? ??? ??? ??? ?} catch (Exception e) {
? ??? ??? ??? ??? ?return RESULT_ERR_CONNECT;
? ??? ??? ??? ?}
? ??? ??? ??? ?while(ne.hasMore()) {
? ??? ??? ??? ??? ?SearchResult sr = (SearchResult)ne.next();
? ??? ??? ??? ??? ?Attributes attrs = sr.getAttributes();
? ??? ??? ??? ??? ?Attribute passwordAttr = attrs.get(userPwdAttrName);
? ??? ??? ??? ??? ?ldapPassword = new String((byte[]) passwordAttr.get());
? ??? ??? ??? ??? ?if(ldapPassword == null){
? ??? ??? ??? ??? ??? ?return RESULT_ERR_PASSWORD;
? ??? ??? ??? ??? ?}
? ??? ??? ??? ??? ??? ?Attribute accessTimeAttr = attrs.get(userAccessTimeAttrName);
? ??? ??? ??? ??? ??? ?ldapAccessTime = (String)accessTimeAttr.get();
? ??? ??? ??? ??? ??? ?dn = sr.getNameInNamespace();
? ??? ??? ??? ??? ??? ?System.out.println(dn.toString());
? ??? ??? ??? ?}?? ?
? ??? ??? ?} catch (Exception e) {
? ??? ??? ??? ?return RESULT_ERR_CONNECT;
? ??? ??? ?}
? ??? ??? ?return RESULT_SUCCESS;
? ??? ?}

3.測(cè)試程序

????? int ret=init();
??????? if(ret==0){
??????????? System.out.println("LDAP初始化成功");
??????? }else{
?????? ??? ?System.out.println("LDAP初始化失敗");
??????? }
?????? int result=getProcessResultBatch(ctx,100);
?????? if(result==RESULT_SUCCESS){
?????????? System.out.println("RESULT_SUCCESS"); ?? ??? ??? ?
?????? }else if(result==RESULT_ERR_CONNECT){
??? ??? ? // System.out.println("RESULT_ERR_CONNECT");
?????? }else if(result==RESULT_ERR_NOUSER){
??? ??? ?? System.out.println("RESULT_ERR_NOUSER");
?????? }else if(result==RESULT_ERR_PASSWORD){
??? ??? ?? System.out.println("RESULT_ERR_PASSWORD");
?????? }else{
??? ??? ?? System.out.println("RESULT_OTHER");
?????? }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/archive/2013/01/09/2853191.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的遍历查询ldap服务器用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年人精品视频 | www中文字幕在线观看 | 国产资源精品 | 日韩激情毛片 | 青娱乐国产在线 | 国产日本精品视频 | 国色天香av| 日本中文字幕久久 | 国产综合图片 | 成人国产精品久久久网站 | 风间由美av | 999xxxx| 巨乳美女被爆操 | 欧美一区二区成人 | 国产精品久久久久久久妇 | 偷拍一区二区三区 | 看日本黄色录像 | 欧美在线视频第一页 | 91精选国产| 国产精品福利在线 | 日本人妖xxxx | 亚洲综合套图 | 白丝校花扒腿让我c | 中文在线观看免费 | 午夜在线视频 | 欧美a级在线免费观看 | 精品中文视频 | 四虎永久免费在线观看 | 日本三级生活片 | 久草网在线| 欧美一区二区大片 | 国产精品久久久久久影视 | 成人性生交生交视频 | 日本www| 亚洲综合在线播放 | 久热在线 | 黄色aa毛片| 日韩免费观看一区二区三区 | 中文字幕久久一区 | 手机在线免费av | 亚洲国产视频网站 | 美丽的姑娘在线观看免费 | 成人精品国产 | 天天综合视频 | 老汉av| 国产综合内射日韩久 | 中文字幕视频 | 露胸app | 双性人做受视频 | 日本爱爱免费视频 | 国产二区精品 | 男女爽爽 | 午夜99 | 一本加勒比北条麻妃 | 国产精品ww | 欧美精品观看 | 一级淫片a | 亚洲av无码国产精品色午夜 | 国产午夜视频在线 | 亚洲爱爱视频 | 国产a级大片 | 91亚洲精品久久久久久久久久久久 | 骚虎免费视频 | 国内精品视频在线播放 | 免费看的黄色 | 欧美日韩综合网 | 理论片毛片| 操亚洲女人| 欧美放荡办公室videos4k | 麻豆免费视频 | 糖心视频在线 | 色香色香欲天天天影视综合网 | 老司机午夜视频 | 日日干日日| 国产乱子伦一区二区 | 91免费片 | 国产高清视频免费在线观看 | 国产性生活片 | 久久精品国产一区二区三区 | 综合久久影院 | 久草aⅴ| 逼逼av | 免费av免费看 | 亚洲第三区| 无码人妻aⅴ一区二区三区日本 | 精品国产亚洲一区二区麻豆 | 亚洲国产爱 | 一区二区在线观看免费 | 久久久久久久久久久99 | 在线观看中文字幕 | 欧美一区二区黄色 | 亚洲精品免费电影 | 亚洲大尺度在线 | 欧美精品乱码 | 91在线观看视频 | av爱爱爱 | 成人av动漫在线观看 | 久久老司机 | 成人久色 |