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.