« どこのボタンを押してもロボットに変身しない件 | メイン | やる夫がデザインパターンをやるようです 第1回 »



javaのldap(ディレクトリサービス)ビューア使ってみました

javaのldap(ディレクトリサービス)ビューア使ってみましたをはてなブックマークに追加 javaのldap(ディレクトリサービス)ビューア使ってみましたをdel.icio.usに追加  Yahoo!ブックマークに登録 javaのldap(ディレクトリサービス)ビューア使ってみましたをGoogle Bookmarksに追加 javaのldap(ディレクトリサービス)ビューア使ってみましたをtwitterにポスト
システムインフラ系の維持管理にも当然開発があるのですが、これまでそういう案件で仕事をしたことがありませんでした。今はグループウェアを使ったウェブ系の仕事をしているのですが、アカウントの管理や認証なんかは避けて通れないですね。
以下のソースは、ディレクトリサービスを参照して実装したアカウントのプロパティを全部表示するプログラムです。ディレクトリサービスとはウィンドウズのアクティブディレクトリとかです。とかと言いましたが、それしか知りません。フヒヒ。

今回これを作ったのは、「とあるユーザアカウント情報を持ったXMLファイルがあるので、そのアカウントから適宜AD情報を引いてくれ」という依頼を受けたからデス。それに伴い、ADにはどんなプロパティがあるのか知りたかったため作りました。システムインフラ系の維持管理開発はそんなんばっかだと思いますが、知らなかったことなんでポストしておきます。
ちなみにSystem.out.printlnはリダイレクトしてファイルに落としてください。ファイルライター作るのがメンドイときはいつもそうしてます。
java LdapViewer > log.txt

こんな感じ。

// LDAP関係
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;

public class LdapViewer {

    public static void main( String[] args ) {

        try {
            // InitialDirContextの作成
            Properties env = new Properties();
            env.setProperty( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
            env.put( Context.PROVIDER_URL, "ldap://ldapサーバ:ポート" );

            env.put( DirContext.SECURITY_PRINCIPAL, "アカウント" );
            env.put( DirContext.SECURITY_CREDENTIALS, "パスワード" );
            InitialDirContext ctx = new InitialDirContext( env );

            //検索して結果を表示
            SearchControls ctrl = new SearchControls();
            ctrl.setSearchScope( ctrl.SUBTREE_SCOPE );

            NamingEnumeration topLvlSrch = ctx.search( "OU=探すOU,DC=探すDC", "cn=アカウント", ctrl );
            while ( topLvlSrch.hasMoreElements() ) {

                SearchResult srchRslt = ( SearchResult )topLvlSrch.next();
                Attributes atrs = srchRslt.getAttributes();
                NamingEnumeration atrSrch = atrs.getAll();

                while ( atrSrch.hasMoreElements() ) {

                    Attribute atr = ( Attribute )atrSrch.next();
                    Enumeration elems = atr.getAll();

                    while ( elems.hasMoreElements() ) {
                        System.out.println( atr.getID() + " : " + elems.nextElement() );
                    }
                }

                // 個別に取得
                // Attribute atr = atrs.get( "mail" );
                // System.out.println( atr.getID() + " : " + (String)atr.get() );

            }
        } catch ( Exception e ) {
            e.printStackTrace();
        }
    }
};

via : LDAP Browser/Editor

★このコンテンツに目的の情報はありませんでしたか?


[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

トラックバック

このエントリーのトラックバックURL:
http://mojalog.com/cgi/mt/mt-tb.cgi/239

コメントを投稿

ツリータイプ・カテゴリー

open all | close all

リファラから検索


サイト内検索