[16.0.0.3 以降]

Liberty でのカスタム・ユーザー・リポジトリーの開発

Liberty サーバーで com.ibm.wsspi.security.wim.CustomRepository インターフェースを実装することによって、カスタム・ユーザー・リポジトリーをユーザー・フィーチャーとして開発できます。このカスタム・リポジトリー・インターフェースは、ほとんどのタイプのアカウント・リポジトリーのサポートを可能にします。

分散プラットフォームの場合

始める前に

開発者ツールを使用してカスタム・リポジトリー・インターフェースを実装する場合、『開発者ツールでのカスタム・ユーザー・リポジトリー SPI の構成』の説明に従って、SPI を使用するようにそれらのツールを構成します。

手順

  1. カスタム・リポジトリー・インターフェース com.ibm.wsspi.security.wim.CustomRepository を実装するクラスを作成します。 このクラスは、リポジトリー操作を提供します。このインターフェースについて詳しくは、『プログラミング・インターフェース (API および SPI)』で、または、製品と一緒に ${wlp.install.dir}/dev/spi/ibm/ ディレクトリー内に提供される Java 文書で、com.ibm.websphere.appserver.spi.federatedRepository_1.0 SPI についての説明を参照してください。

    このインターフェースの実装例については、リポジトリー・インターフェース例を参照してください。

  2. 実装クラスを OSGi サービスに変換します。 詳細については、『OSGi Declarative Services に対するサービスの宣言』を参照してください。
  3. カスタム・ユーザー・リポジトリーを OSGi バンドルとしてパッケージし、ユーザー・リポジトリー・サービスをエクスポートします。OSGi バンドルの作成方法について詳しくは、『OSGi サービス・バンドルの作成』を参照してください。
  4. フィーチャー・マニフェスト・ファイルを作成して、この OSGi バンドルを組み込みます。詳細については、『製品拡張』を参照してください。
  5. フィーチャーがユーザー製品拡張ロケーションにインストールされた後、server.xml 構成ファイルでカスタム・リポジトリー・フィーチャーを追加します。カスタム・リポジトリーに必要な appSecurity-2.0 フィーチャーと federatedRegistry-1.0 フィーチャーも追加します。 以下に例を示します。
    <featureManager>
    	...
    	<feature>usr:customRepositorySample-1.0</feature>
    	<feature>appSecurity-2.0</feature>
    	<feature>federatedRegistry-1.0</feature>
    </featureManager>
  6. オプション: ユーザーおよびグループについて、カスタマイズした属性を定義したい場合、server.xml ファイルで federatedRepository エレメント内にそれらの属性を構成します。
    次の例では、PersonAccount エンティティーに対して myProp 属性が定義され、 Group エンティティーに対して myGroupProp 属性が定義されています。
    <federatedRepository>
       <primaryRealm name="sampleCustomRepositoryRealm">
           <participatingBaseEntry name="o=ibm,c=us"/>
       </primaryRealm>
       <extendedProperty dataType="String" name="myProp" entityType="PersonAccount"></extendedProperty>
       <extendedProperty dataType="String" name="myGroupProp" entityType="Group"></extendedProperty>
    </federatedRepository>

リポジトリー・インターフェース例

package com.myorg;

import java.util.Map;
import com.ibm.wsspi.security.wim.exception.WIMException;
import com.ibm.wsspi.security.wim.model.Root;
import com.ibm.wsspi.security.wim.CustomRepository;

public class MyCustomRepository implements CustomRepository {

    public CustomRepository() {
        System.out.println(“In my custom repository implementation”);
    }

    @Override
    public Root create(Root arg0) throws WIMException {
        System.out.println(“In my create method”);
        //Add your code here
    }

    @Override
    public Root delete(Root arg0) throws WIMException {
        System.out.println(“In my delete method”);
        //Add your code here
    }

    @Override
    public Root get(Root arg0) throws WIMException {
        System.out.println(“In my get method”);
        //Add your code here
    }

    @Override
    public String getRealm() {
        return "customRepository";
    }

    @Override
    public Root login(Root arg0) throws WIMException {
        System.out.println(“In my login method”);
        //Add your code here
    }

    @Override
    public Root search(Root arg0) throws WIMException {
        System.out.println(“In my search method”);
        //Add your code here
    }
 
    @Override
    public Root update(Root arg0) throws WIMException {
        System.out.println(“In my update method”);
        //Add your code here
    }

    @Override
    public Map<String, String> getRepositoryBaseEntries() {
        System.out.println(“In my getRepositoryBaseEntries method”);
        //Add your code here
    }

    @Override
    public String[] getRepositoriesForGroups() {
        System.out.println(“In my getRepositoriesForGroups method”);
        //Add your code here
    }
}

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_sec_cust_repository
ファイル名: twlp_sec_cust_repository.html