Cosminexus V9 アプリケーションサーバ 機能解説 セキュリティ管理機能編
ここでは,APIを使用したユーザー認証を実装するときの注意事項について説明します。
ログインおよびログアウトを実装するときに,Subjectを使用しないで,ログイン時に生成したLoginContextのインスタンスをログアウト時に使用すると,ログインモジュールの設定内容によってはログアウトに失敗するおそれがあります。
ログインおよびログアウトは,Subjectを使用する実装にしてください。設定してはいけない実装の例を次に示します。
<%LoginContext lc = new LoginContext("Portal", new WebPasswordHandler(request, response, null, "login.html", true)); try { lc.login(); } catch (LoginException e) { ... } session.setAttribute("loginContext", lc); %> ... <% LoginContext lc = (LoginContext)event.getSession().getAttribute("loginContext"); try { lc.logout(); } catch (LoginException e) { ... } %> ... |
注 太字部分は,設定してはいけない実装を示します。
... <%LoginContext lc = new LoginContext("Portal", new WebPasswordHandler(request, response, null, "login.html", true)); try { lc.login(); } catch (LoginException e) { ... } session.setAttribute("loginContext", lc); %> ... <%@ page import="javax.security.auth.login.LoginContext" %> ... <% session.setAttribute("logoutObject", new HttpSessionBindingListener() { public void valueBound(HttpSessionBindingEvent event) {} public void valueUnbound(HttpSessionBindingEvent event) { LoginContext lc = (LoginContext)event.getSession().getAttribute("loginContext"); try { lc.logout(); } catch (LoginException e) { ... }; } };); %> ... |
注 太字部分は,設定してはいけない実装を示します。
ユーザ情報参照および取得を実装するときには,次の点に注意してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.