JAVA登陸Window Server Active Directory并搜索用戶信息以及組信息(三)

lyz 15年前發布 | 3K 次閱讀 JavaSwing

    /*

     * 根據組打印出所有信息例如((CN=lyz)

     * CopyRight:Liyuanzheng

     */

    public void printOneGroupInfo(String groupBase){

       try {

           NamingEnumeration namingEnumeration = ADUtillong.getInstance().search(groupBase,"(objectclass=*)");

           while(namingEnumeration.hasMore()){

              SearchResult sr = (SearchResult) namingEnumeration.next();

              String name = sr.getName();//得到名稱

              System.out.println("entry: " + name);

              Attributes at = sr.getAttributes();//得到所有屬性

              NamingEnumeration ane = at.getAll();

              while(ane.hasMore()){

                  Attribute attr = (Attribute) ane.next();

                  String attrType = attr.getID();//屬性名稱(key

                  NamingEnumeration values = attr.getAll();

                  while (values.hasMore()) {

                     Object oneVal = values.nextElement();

                     if (oneVal instanceof String) {

                         System.out.println(attrType + ": " + (String) oneVal);

                     }

                  }

              }

           }

          

       } catch (NamingException e) {

           String message = e.getMessage();

           if(message.indexOf("closed") != -1){

              ADUtillong.getInstance().reConn();

           }

           System.out.println(message);

       }

    }

 

/*

     * 根據用戶名(CN=liyuanzheng)得到其userPrincipalName

     * CopyRight:Liyuanzheng

     */

    public  ClientUser getUserByNameBase(String userNameBase){

       ClientUser clientUser = new ClientUser();

       try {

           NamingEnumeration namingEnumeration = ADUtillong.getInstance().search(userNameBase,"(objectclass=*)");

           while(namingEnumeration.hasMore()){

              SearchResult sr = (SearchResult) namingEnumeration.next();

              String name = sr.getName();//得到名稱

              Attributes at = sr.getAttributes();//得到所有屬性

             

              NamingEnumeration ane = at.getAll();

              while(ane.hasMore()){

                     Attribute attr = (Attribute) ane.next();

                     String attrType = attr.getID();//屬性名稱(key

                        NamingEnumeration values = attr.getAll();

                        if(attrType.equals("userPrincipalName")){

                           while (values.hasMore()) {

                              Object oneVal = values.nextElement();

                              clientUser.setUserName(oneVal.toString());

                           }

                        }

              }

           }

          

       } catch (NamingException e) {

           String message = e.getMessage();

           if(message.indexOf("closed") != -1){

              ADUtillong.getInstance().reConn();

           }

           System.out.println(message);

       }

      

       return clientUser;

    }

 

   

 本文由用戶 lyz 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!