システムインフラ系の維持管理にも当然開発があるのですが、これまでそういう案件で仕事をしたことがありませんでした。今はグループウェアを使ったウェブ系の仕事をしているのですが、アカウントの管理や認証なんかは避けて通れないですね。
以下のソースは、ディレクトリサービスを参照して実装したアカウントのプロパティを全部表示するプログラムです。ディレクトリサービスとはウィンドウズのアクティブディレクトリとかです。とかと言いましたが、それしか知りません。フヒヒ。
今回これを作ったのは、「とあるユーザアカウント情報を持ったXMLファイルがあるので、そのアカウントから適宜AD情報を引いてくれ」という依頼を受けたからデス。それに伴い、ADにはどんなプロパティがあるのか知りたかったため作りました。システムインフラ系の維持管理開発はそんなんばっかだと思いますが、知らなかったことなんでポストしておきます。
ちなみにSystem.out.printlnはリダイレクトしてファイルに落としてください。ファイルライター作るのがメンドイときはいつもそうしてます。
こんな感じ。
via : LDAP Browser/Editor
以下のソースは、ディレクトリサービスを参照して実装したアカウントのプロパティを全部表示するプログラムです。ディレクトリサービスとはウィンドウズのアクティブディレクトリとかです。とかと言いましたが、それしか知りません。フヒヒ。
今回これを作ったのは、「とあるユーザアカウント情報を持った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



