読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

JavaでActiveDirectoryでの認証ができたー

Java CDI ActiveDirectory

Javaで(正しくはJava EEから)Active Directoryに接続するための準備が終わり、実装・テストも無事完了しました。

準備の過去記事は以下に。

コードはわりとシンプルで、とりあえず今まで設定したレベルの単純なADであれば以下で認証できました。

Hashtable<String, String> env = new Hashtable<>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.PROVIDER_URL, "ldap://hogehoge:389");
env.put(Context.SECURITY_PRINCIPAL, "makimaki" + "@hogedomain.hoge");
env.put(Context.SECURITY_CREDENTIALS, "makimaki19881006");
        
DirContext ctx;
try {
    ctx = new InitialDirContext(env);
    ctx.close();
    //"AD認証成功"
} catch (NamingException ex) {
    //"AD認証失敗";
}

Hashtable使うとNetBeans君が「ォィォィ」って警告だすのですが、InitialDirContextの引数がHashtableっていうので何とも。

ちなみに本実装では

  • CDIのalternativeを使って、普通の自前ログイン認証とAD認証をbeans.xmlでスイッチできるようにしたり
  • サンプルコードで書いた各種パラメータ値(simpleとかldapのURLとか)は外部ファイルで設定できるようにしたり

などをしました。

JavaでのAD認証、当初の想定より早く実装が終わって良かったー。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村