intra-mart Accel Platform 互換ガイド 第9版 2015-12-01

5. アクセスセキュリティ

アクセスセキュリティAPIの仕様変更や注意点について解説します。

5.1. アカウント情報について

5.1.1. カラーパターン・メインページパターンとテーマIDの扱い

カラーパターン・メインページパターンはテーマに統合されました。
互換API AccountManager において、アカウントを登録する場合、カラーパターン・メインページパターンは無視されます。
アカウント参照時には、アカウントのテーマIDから該当する値にマッピングを行って、値を返却します。

5.1.2. モバイルパスワード

モバイルパスワードは、 intra-mart Accel Platform では廃止されました。
互換API AccountManager において、モバイルパスワードを設定した場合、アカウント属性に保管されるようになります。

アカウント属性の属性名は im_compatible_mobile_password です。

アカウント属性に保管されているモバイルパスワードの値は暗号化されています。
値を復号化する場合は、以下のコードを利用してください。
String mobilePassword = null;
AccountInfoManager manager = new AccountInfoManager().
String srcMobilePassword = manager.getAttribute(accountInfo.getUserCd(), CompatibleConstants.MOBILE_PASSWORD_ATTRIBUTE);
if(srcMobilePassword != null) {
   // 復号化します。
   mobilePassword = CryptionUtil.decrypt("account", srcMobilePassword);
}

なお、互換API AccountManagerを用いてアカウント情報を取得した場合は、復号化された状態で返却されます。

5.1.3. 外出フラグ

外出フラグは、 intra-mart Accel Platform では廃止されました。
互換API AccountManager において、 外出フラグを設定した場合、 アカウント属性に保管されるようになります。

アカウント属性の属性名は im_compatible_go_out です。

属性値は以下の通りです。

   
有効(true) “1”
無効(false) “0”

5.2. リスナー

アクセスセキュリティの情報を更新した時に呼び出されるリスナーの設定方法が変更になりました。

5.2.1. アカウントリスナー

プラグインファイルによって設定する方法に変更になりました。

リスナークラスは、jp.co.intra_mart.foundation.security.account.AccountChangedListener を実装して作成したものが利用できます。

  1. 作成されたwarファイル内の WEB-INF/plugin フォルダにユニークな名称のフォルダを作成します。

  2. 作成したフォルダ内にplugin.xmlファイルを作成します。

  3. plugin.xmlに以下のように記述します。

    クラス名は、該当のリスナークラスに差し替えてください。

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin>
       <extension point="jp.co.intra_mart.foundation.security.listeners">
          <listeners
             name="Account Listener Sample"
             id="account.changed.listener.sample"
             version="1.0">
             <account-listener class="sample.SampleAccountChangedListener1"/>
             <account-listener class="sample.SampleAccountChangedListener2"/>
          </listeners>
       </extension>
    </plugin>
    

5.2.2. ロールリスナー

プラグインファイルによって設定する方法に変更になりました。

リスナークラスは、jp.co.intra_mart.foundation.security.role.RoleChangedListener を実装して作成したものが利用できます。

  1. 作成されたwarファイル内の WEB-INF/plugin フォルダにユニークな名称のフォルダを作成します。

  2. 作成したフォルダ内にplugin.xmlファイルを作成します。

  3. plugin.xmlに以下のように記述します。

    クラス名は、該当のリスナークラスに差し替えてください。

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin>
       <extension point="jp.co.intra_mart.foundation.security.listeners">
          <listeners
             name="Role Listener Sample"
             id="role.changed.listener.sample"
             version="1.0">
             <role-listener class="sample.SampleRoleChangedListener1"/>
             <role-listener class="sample.SampleRoleChangedListener2"/>
          </listeners>
       </extension>
    </plugin>
    

5.2.3. ライセンスリスナー

プラグインファイルによって設定する方法に変更になりました。

リスナークラスは、jp.co.intra_mart.foundation.security.license.LicenseChangedListener を実装して作成したものが利用できます。

  1. 作成されたwarファイル内の WEB-INF/plugin フォルダにユニークな名称のフォルダを作成します。

  2. 作成したフォルダ内にplugin.xmlファイルを作成します。

  3. plugin.xmlに以下のように記述します。

    クラス名は、該当のリスナークラスに差し替えてください。

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin>
       <extension point="jp.co.intra_mart.foundation.security.license.listener">
          <groups
             name="License Listener Sample"
             id="license.changed.listener.sample"
             version="1.0">
             <listener class="sample.SampleLicenseChangedListener1"/>
             <listener class="sample.SampleLicenseChangedListener2"/>
          </groups>
       </extension>
    </plugin>
    

5.3. インポート

intra-mart Web Platform 7.2 で利用されていたインポートファイルが利用可能です。

ショブスケジューラとして登録されています。

Overview of Compatible Import Jobnets

5.3.1. アカウントXMLインポート

intra-mart Web Platform 7.2 で利用されていたXML形式のアカウントインポートファイルでインポートを行います。

デフォルトでは、以下のような手順でインポートが実行できます。

  1. %PUBLIC_STORAGE_PATH% フォルダに account72.xml という名称でインポートファイルを配置します。
  2. 「ジョブ管理」「ジョブネット設定」 から [互換] アカウントインポート(xml) のジョブネットを実行します。

注意

インポートによって新しくアカウントを登録する場合、登録したアカウントと同じIM-共通マスタのプロファイルをインポートしてください。

コラム

インポート元ファイル配置場所の変更

  1. 「ジョブ管理」「ジョブネット設定」 から [互換] アカウントインポート(xml) を選択します。

  2. [実行時の情報][実行パラメータ]file の値を変更します。
    パス名は、%PUBLIC_STORAGE_PATH% フォルダからの相対パスで指定します。

5.3.2. アカウントCSVインポート

intra-mart Web Platform 7.2 で利用されていたCSV形式のアカウントインポートファイルでインポートを行います。
インポートファイルは、UTF-8形式で作成してください。

デフォルトでは、以下のような手順でインポートが実行できます。

  1. %PUBLIC_STORAGE_PATH% フォルダに account72.csv という名称でインポートファイルを配置します。
  2. 「ジョブ管理」「ジョブネット設定」 から [互換] アカウントインポート(csv) のジョブネットを実行します。

注意

インポートによって新しくアカウントを登録する場合、登録したアカウントと同じIM-共通マスタのプロファイルをインポートしてください。

コラム

インポート元ファイル配置場所の変更

  1. 「ジョブ管理」「ジョブネット設定」 から [互換] アカウントインポート(csv) を選択します。

  2. [実行時の情報][実行パラメータ]file の値を変更します。
    パス名は、%PUBLIC_STORAGE_PATH% フォルダからの相対パスで指定します。

5.3.3. ロールXMLインポート

intra-mart Web Platform 7.2 で利用されていたXML形式のロールインポートファイルでインポートを行います。

デフォルトでは、以下のような手順でインポートが実行できます。

  1. %PUBLIC_STORAGE_PATH% フォルダに role72.xml という名称でインポートファイルを配置します。
  2. 「ジョブ管理」「ジョブネット設定」 から [互換] ロールインポート(xml) のジョブネットを実行します。

コラム

インポート元ファイル配置場所の変更

  1. 「ジョブ管理」「ジョブネット設定」 から [互換] ロールインポート(xml) を選択します。

  2. [実行時の情報][実行パラメータ]file の値を変更します。
    パス名は、%PUBLIC_STORAGE_PATH% フォルダからの相対パスで指定します。

5.4. 旧ログインURLの利用方法

最新バージョンでは、intra-mart Web Platform 7.2 で利用していたログイン画面を表示するURLが利用可能です。

http://{ホスト名}:{ポート}/{コンテキストパス}/{テナントID}.portal

http://localhost:8080/imart/default.portal

コラム

intra-mart Accel Platform では、ログイングループが廃止されています。
通常 旧ログインURLを使用する場合は、 {テナントID}.portal を使用しますが、コンテキストパスによって、テナント(ログイングループ)が決定されますので、 {任意の文字}.portal で、すべて同様の動作となります。

5.5. ショートカットURLの利用方法

最新バージョンでは、ショートカットURLが利用可能です。

ショートカットURLの表記方法は、以下の2通りとなります

http://{ホスト名}:{ポート}/{コンテキストパス}/{テナントID}.portal?im_shortcut={ショートカットID}
または
http://{ホスト名}:{ポート}/{コンテキストパス}/compatible/shortcut/{ショートカットID}
http://localhost:8080/imart/default.portal?im_shortcut=XXXXXX
 または
http://localhost:8080/imart/compatible/shortcut/XXXXXX

コラム

上記のURLにアクセスした場合、ショートカットIDに紐づいているページはiFrame内に表示されます。

5.6. 旧認証モジュールの利用方法

intra-mart Web Platform 7.2 で利用していた旧認証モジュール群を intra-mart Accel Platform で利用する方法について解説します。

一般ユーザでのアクセスの場合のみに対応してます。

5.6.1. リクエストアナライザ

ログイン画面へのアクセス時 および ログイン画面からログイン処理アクセス時のリクエストを解析するモジュールです。

【ログイン画面へのアクセス時にリクエストを解析する場合】

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsRequestAnalyzer または RequestAnalyzerの実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.initial_request_analyzer">
    <initial_request
      name="standard"
      id="jp.co.intra_mart.security.user.initial_request_analyzer.sample"
      version="8.0"
      rank="50">
      <request-analyzer-class>jp.co.intra_mart.foundation.security.certification.ExtendsRequestAnalyzerAdapter</request-analyzer-class>
      <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsRequestAnalyzer または RequestAnalyzerの実装クラス</target-class>
    </initial_request>
  </extension>
</plugin>

コラム

標準のリクエストアナライザは、rank が 100 として登録されています。
標準のリクエストアナライザより先に動作させる場合は100より小さい値を指定してください。
標準のリクエストアナライザより後に動作させる場合は100より大きい値を指定してください。

【ログイン画面からログイン処理アクセス時にリクエストを解析する場合】

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsRequestAnalyzer または RequestAnalyzerの実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.login_request_analyzer">
    <login_request
      name="standard"
      id="jp.co.intra_mart.security.user.login_request_analyzer.sample"
      version="8.0"
      rank="50">
      <request-analyzer-class>jp.co.intra_mart.foundation.security.certification.ExtendsRequestAnalyzerAdapter</request-analyzer-class>
      <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsRequestAnalyzer または RequestAnalyzerの実装クラス</target-class>
    </login_request>
  </extension>
</plugin>

コラム

標準のリクエストアナライザは、rank が 100 として登録されています。
標準のリクエストアナライザより先に動作させる場合は100より小さい値を指定してください。
標準のリクエストアナライザより後に動作させる場合は100より大きい値を指定してください。

5.6.2. ユーザ認証モジュール

ユーザ認証を行うモジュールです。

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserCertification または UserCertification の実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.certification">
    <certification
      name="standard"
      id="jp.co.intra_mart.security.user.certification.sample"
      version="8.0"
      rank="50">
      <certification-class>jp.co.intra_mart.foundation.security.certification.ExtendsUserCertificationAdapter</certification-class>
      <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserCertification または UserCertification の実装クラス</target-class>
    </certification>
  </extension>
</plugin>

コラム

標準のユーザ認証モジュールは、rank が 100 として登録されています。
標準のユーザ認証モジュールより先に動作させる場合は100より小さい値を指定してください。
標準のユーザ認証モジュールより後に動作させる場合は100より大きい値を指定してください。

5.6.3. ユーザ認証リスナー

ユーザ認証後に呼び出されるリスナーモジュールです。

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserCertificationListener または UserCertificationListener の実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.certification">
    <certification
      name="standard"
      id="jp.co.intra_mart.security.user.certification.sample"
      version="8.0"
      rank="50">
      <certification-listener>
        <listener-class>jp.co.intra_mart.foundation.security.certification.ExtendsUserCertificationListenerAdapter</listener-class>
        <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserCertificationListener または UserCertificationListener の実装クラス</target-class>
      </certification-listener>
    </certification>
  </extension>
</plugin>

5.6.4. ユーザページプロバイダ

ログイン画面へのアクセス時に表示するページ および ログイン後のメイン画面を表示するページを返却するプロバイダモジュールです。

【ログイン画面へのアクセス時に表示するページを設定する場合】

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserPageProvider または UserPageProvider の実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.login_page">
    <page
      name="standard"
      id="jp.co.intra_mart.security.user.login_page.sample"
      version="8.0"
      rank="50">
      <page-provider-class>jp.co.intra_mart.foundation.security.certification.ExtendsUserPageProviderAdapter</page-provider-class>
      <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserPageProvider または UserPageProvider の実装クラス</target-class>
    </page>
  </extension>
</plugin>

上記に設定された実装クラスで利用されるメソッドは getInitalPage です。

コラム

標準のユーザページプロバイダは、rank が 100 として登録されています。
標準のユーザページプロバイダより先に動作させる場合は100より小さい値を指定してください。
標準のユーザページプロバイダより後に動作させる場合は100より大きい値を指定してください。
一般的には100より小さい値を指定してください。

【ログイン後のメイン画面に表示するページを設定する場合】

  1. jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserPageProvider または UserPageProvider の実装クラスを作成します。
  2. WEB-INF/plugin/ユニークな半角英数字のフォルダ/plugin.xml を作成し、以下のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.target_page">
    <page
      name="standard"
      id="jp.co.intra_mart.security.user.target_page.sample"
      version="8.0"
      rank="150">
      <page-provider-class>jp.co.intra_mart.foundation.security.certification.ExtendsUserPageProviderAdapter</page-provider-class>
      <target-class>jp.co.intra_mart.foundation.security.certification パッケージの ExtendsUserPageProvider または UserPageProvider の実装クラス</target-class>
    </page>
  </extension>
</plugin>

上記に設定された実装クラスで利用されるメソッドは getMainPage です。

コラム

標準のユーザページプロバイダは、rank が 100 として登録されています。
標準のユーザページプロバイダより先に動作させる場合は100より小さい値を指定してください。
標準のユーザページプロバイダより後に動作させる場合は100より大きい値を指定してください。
一般的には100より大きい値を指定してください。