本記述例では、次の環境を想定しています。ご使用の環境にあわせて変更してください。
リポジトリ作成時の公開ディレクトリを“ou=interstage,o=fujitsu,dc=com”としています。
ユーザ情報の場所を“ou=User,ou=interstage,o=fujitsu,dc=com”としています。
ユーザ情報のRDNを“cn”としています。
userには、有効期間を表示する利用者名をjava.lang.Stringで指定してください。
ctxは、共通の前処理で得られた結果を使用します。
【前処理】 : String [] ret = new String[2]; String [] retAttributes = { "ssoNotBefore", "ssoNotAfter" }; SearchControls sc = new SearchControls(); sc.setSearchScope(SearchControls.OBJECT_SCOPE); sc.setReturningAttributes(retAttributes); sc.setCountLimit(1); sc.setTimeLimit(5 * 1000); // 5 seconds String filter = "(cn=" + user + ")";
String dn = "cn=" + user + ",ou=User,ou=interstage,o=fujitsu,dc=com";
NamingEnumeration ne = ctx.search(dn, filter, sc);
ret[0] = ret[1] = null; while(ne.hasMore()) { SearchResult sr = (SearchResult)ne.next(); Attributes attrs = sr.getAttributes(); if(attrs != null) { Attribute ba = attrs.get("ssoNotBefore"); if(ba != null) { ret[0] = (String)ba.get(); } Attribute aa = attrs.get("ssoNotAfter"); if(aa != null) { ret[1] = (String)aa.get(); } break; } } if(ret[0] != null) { System.out.println("有効期間開始日時 = " + ret[0]); } else { System.out.println("有効期間開始日時は指定されていません"); } if(ret[1] != null) { System.out.println("有効期間満了日時 = " + ret[1]); } else { System.out.println("有効期間満了日時は指定されていません"); } : 【後処理】 |