日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品乱码一区内射人妻无码 | 无码精品国产一区二区三区免费 | 天堂中文字幕av | 亚洲精品aaa | 99成人在线 | 中文一区在线观看 | 金8天国av | 久久精品亚洲a | 日本高清视频网站 | 最新理伦片eeuss影院 | av网站大全在线观看 | 国内黄色片 | 99久久久国产精品 | 欧美日本中文字幕 | 米奇影音 | jiizzyou性欧美老片 | 中国少妇乱子伦视频播放 | 精精国产| 在线观看一区二区三区视频 | 国产爆乳无码一区二区麻豆 | 久久久久久久久久久久久久国产 | 大毛片| 亚洲国产视频在线观看 | 国产真实伦对白全集 | 免费黄色av网址 | 天天色影院 | 亚洲精品一区二区三区精华液 | 男插女av| 99国产精品久久久久久久成人热 | jiizzyou欧美2 | 在线观看免费视频a | 国产天堂在线观看 | 夜夜草网站 | 少妇搡bbbb搡bbb搡打电话 | 成人网色| 亚洲色成人www永久在线观看 | 成人无码久久久久毛片 | 日本一级三级三级三级 | 午夜在线一区二区 | 黄色一级片免费在线观看 | 天天做日日干 | 午夜免费成人 | 黄色网页免费观看 | 美女在线一区 | 色呦呦官网| 激情九月天 | 99久久免费国产精精品 | 亚洲人成色777777精品音频 | 日批视频免费在线观看 | 爱情岛亚洲品质自拍极速福利网站 | 国产麻豆精品一区二区 | 九九色在线 | 国产精品毛片一区二区三区 | 视屏一区| 无码h黄肉3d动漫在线观看 | 国产一区二区欧美日韩 | 久久婷婷丁香 | 丰满人妻一区二区三区无码av | 欧美亚洲国产一区 | 欧美永久| 激情欧美综合 | 国产美女一区二区 | 人妻无码一区二区三区四区 | 亚洲欧美另类日本 | 国产校园春色 | 成人激情免费视频 | 中文字幕无人区二 | 色女综合 | 免费av观看网址 | 午夜tv影院| 香蕉视频毛片 | 丁香花婷婷| 不卡av在线免费观看 | 久久蜜臀精品av | 2019中文字幕在线免费观看 | 九色91视频 | 亚洲人成久久 | 午夜激情在线观看视频 | 桃花岛影院 | 亚洲高清不卡 | 韩国毛片网站 | 爱插美女网 | 传媒一区二区 | 一区二区三区少妇 | 四虎影视在线播放 | 精品视频在线观看免费 | 欧美男女交配视频 | 农村偷人一级超爽毛片 | 日本伦理一区二区三区 | 美女爱爱爱| 性生活视频网站 | 欧美日韩专区 | 国产91精品露脸国语对白 | 无码播放一区二区三区 | 国产精品一区二区不卡 | 99国产超薄肉色丝袜交足 | 国产情侣在线播放 | 日韩视频免费观看高清完整版在线观看 | 不卡的免费av |