5.10.8 APIによる実装時の注意事項
ここでは,APIを使用したユーザー認証を実装するときの注意事項について説明します。
(1) ログインおよびログアウトを実装するときの注意事項
ログインおよびログアウトを実装するときに,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)session.getSession().getAttribute("loginContext"); try { lc.logout(); } catch (LoginException e) { ... } %> ...
注 背景色付きの太字部分は,設定してはいけない実装を示します。
(2) ユーザ情報参照および取得を実装するときの注意事項
ユーザ情報参照および取得を実装するときには,次の点に注意してください。
-
UserAttributesオブジェクトの値を変更しても,リポジトリには反映されません。また,ユーザ認証ライブラリでは,取得した属性について何も加工しません。
-
UserAttributesオブジェクトに登録されている属性は,String型だけです。
-
属性の一覧で指定された属性がない場合は,nullが設定されます。