CookBook

前回のログイン時刻を表示するポートレットの作成方法

投稿日:

このクックブックでは、前回のログイン時刻を表示するポートレットの作成方法をご紹介します。
具体的には、以下の3つの情報を表示するポートレットを作成します。

  • 前回のログイン時刻
  • 前回ログイン時のIPアドレス
  • 前回ログイン時のUserAgent

完成イメージ

完成サンプル

e builder プロジェクト : im_cookbook_116892_last_login_date.zip
imm ファイル : im_cookbook_116892_last_login_date-1.0.0.imm

レシピ

  1. 認証リスナの作成
  2. 認証リスナの設定
  3. ポートレット画面の作成
  4. ポートレットの追加

1. 認証リスナの作成

まず、認証リスナを作成します。
以下の3つの情報をアカウント属性として保存します。

  • 前回のログイン時刻
  • 前回ログイン時のIPアドレス
  • 前回ログイン時のUserAgent
src/main/java/jp/co/intra_mart/cookbook/im_cookbook_116892/LoginDateRegisterCertificationListener.java

行数 説明
26 認証が成功した場合にだけ、前回ログイン時の情報を更新します。
28 Basic認証など Authrorazationヘッダを利用した認証処理を除外しています。これは、ユーザが故意にログイン処理を行っていない場合、前回ログイン時の情報を更新しないようにするための処理です。(例:intra-mart Accel Collaboration の CalDAV連携によるBasic認証処理)
35 前回ログイン時の情報を別のアカウント属性名で保存し直しています。
43 「今回のログイン時刻」をアカウント属性に保存しています。
47 InetAddressDetector を利用して、リクエストからリモートホストのIPアドレスを取得しています。これにより、ロードバランサやプロキシサーバを使用している環境でもIPアドレスを取得することが可能です。詳しくは、 APIドキュメント、および、IPアドレス取得元設定 を参照してください。
51 「今回ログイン時のIPアドレス」をアカウント属性に保存しています。
58 「今回ログイン時のUserAgent」をアカウント属性に保存しています。

認証リスナの詳細は、以下を参照してください。

2. 認証リスナの設定

次に、認証リスナの設定を行います。

認証リスナは、plugin.xml にて設定を行います。
詳細は、認証仕様書を参照してください。

src/main/plugin/im_cookbook_116892_last_login_date_1.0.0/plugin.xml

行数 説明
3 認証リスナの拡張ポイント「jp.co.intra_mart.security.user.certification」に対して設定します。
10 手順1で作成した認証リスナ「LoginDateRegisterCertificationListener」クラスの完全修飾クラス名(FQCN)を設定します。
15 強制ログイン用認証リスナの拡張ポイント「jp.co.intra_mart.security.user.force_login」に対して設定します。
22 強制ログインの場合も、通常の認証と同じ処理を行うため、10行目と同じクラスを設定します。
  • なお、強制ログイン用認証リスナは、2015 Winter(Lydia) より利用可能です。
    2015 Summer(Karen) 以前のバージョンでは、強制ログイン時に認証リスナは実行されません。

3. ポートレット画面の作成

認証リスナでアカウント属性に保存した前回ログイン時の情報を取得します。
情報の取得には、 AccountInfoManager#getAttribute() を利用しています。
詳しくは、以下のソースを参照してください。

スクリプト開発モデルの場合
src/main/jssp/src/im_cookbook_116892_last_login_date/show_last_login_date.html

src/main/jssp/src/im_cookbook_116892_last_login_date/show_last_login_date.js

Java開発モデルの場合
src/main/webapp/im_cookbook/116892/show_last_login_date.jsp

4. ポートレットの追加

最後にポートレットを追加します。

手順3で作成した「スクリプト開発ポートレット」または「Servlet Jsp ポートレット」を登録します。ポートレットのアクセス権(表示)を設定し、グループポータル、または、ユーザポータルにポートレットを追加してください。

  • 「スクリプト開発ポートレット」として登録する場合
    • ページパス : im_cookbook_116892_last_login_date/show_last_login_date
  • 「Servlet Jsp ポートレット」として登録する場合
    • URL : im_cookbook/116892/show_last_login_date.jsp

ポートレット追加方法の詳細は、以下を参照してください。

まとめ

このクックブックでは、前回のログイン時刻を表示するポートレットの作成方法をご紹介しました。
具体的には、以下の3つの情報を表示するポートレットを作成しました。

  • 前回のログイン時刻
  • 前回ログイン時のIPアドレス
  • 前回ログイン時のUserAgent

前回ログイン時の情報の保存には、「認証リスナ」を利用しました。
intra-mart Accel Platform の 認証機能は、認証リスナの他にも様々なプラグインで機能を拡張することが可能です。
お客様の用途にあわせて是非ご活用ください。

-CookBook
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ライブラリのバージョン監視に応用可能なロジックフローの作り方

このCookBookでは、IM-LogicDesignerを利用して、指定したURLのHTMLから正規表現を利用して任意の文字列を取得する方法を紹介します。 JavaScript定義とREST定義を作 …

no image

IM-BloomMaker カスタムスクリプトの使い方と$variableからの取得・代入の方法

このCookBookでは、IM-BloomMakerのアクションの一つであるカスタムスクリプトの使い方と$variable(変数)からの取得および代入の方法について紹介しています。 実際にサンプル画面 …

no image

ViewCreatorでIM-Workflowのフロー毎の取止め・差戻し案件件数を表示する。

このCookBookでは、ViewCreatorでIM-Workflowのフロー毎の取止め/差戻し案件件数を表示する方法を説明します。 検索条件を変更することで、IM-Workflowの特定の状況をモ …

no image

ワークスペースとファイルライブラリ機能との連携

このCookBookでは、「intra-mart Accel Collaboration」の機能の1つであるワークスペースと「intra-mart Accel Collaboration」のファイルラ …

no image

intra-martを初めて使う開発者が、まずは e Builder で「Hello world!」する方法

e Builder は、intra-mart Accel Platform で動作するアプリケーションを開発するための開発支援ツールです。 このレッスンでは、intra-martを初めて使う開発者が …

まだデータがありません。

RSSRSSRSSRSS