5.3.2 資格証明マッピング・インタフェース・プラグインの実装
次のシナリオを使用します:
- 既存のWebサービス
myservice
(サイトは、http://www.abc.com/webservice)には、HTTP基本認証が必要です。ユーザー名はtest
で、パスワードは1234
です。レルムはmyrealm
です。 - (
wsdlcvt
を使用して) WebサービスWSDLをSALT構成ファイルに変換した後で、<Realm>myrealm</Ream>
要素をWSDF
ファイルのエンドポイント定義に追加します。
SALTプラグイン・インタフェースを実装するには、次のステップを実行します:
- "
myrealm
"のOracle TuxedoUID/GID
をwww.abc.comでのusername/password
にマップする関数を作成します。Credmap_HTTP_Basic();
を使用しますこの関数はHTTPユーザー名/パスワードを返します。この関数のプロトタイプは、
credmap_pi_ex.h
で定義されます。
- 以下の3つのプラグイン登録関数を作成します。詳細は、「プラグイン登録関数」を参照してください
_ws_pi_init_P_CREDENMAP_TEST(char * params, void ** priv_ptr);
この関数は、GWWSサーバーが起動中にプラグイン共有ライブラリをロードしようとするときに呼び出されます。
_ws_pi_exit_P_CREDENMAP_TEST(void * priv);
この関数は、GWWSサーバーがシャットダウン中にプラグイン共有ライブラリをアンロードするときに呼び出されます。
ws_pi_set_vtbl_P_CREDENMAP_TEST(void * vtbl);
ステップ1で実装された
Credmap_HTTP_Basic()
関数を使用してvtable
構造体credmap_vtable
内のgwws_pi_map_http_basic
エントリを設定します。
- 省略可能な関数も作成できます:
_ws_pi_get_Id_and_Names(int * params, char ** ids, char ** names);
この関数は、GWWSサーバーの起動中に、プラグイン共有ライブラリをロードする際に呼び出され、実装されているライブラリ・インタフェースが判断されます。詳細は、「プラグイン登録関数」を参照してください。
- 前述した4つか5つの関数を1つの共有ライブラリ
credmap_plugin.so
にコンパイルします - SALTデプロイメント・ファイルでプラグイン・インタフェースを設定します。
次の例に示すように、プラグイン・インタフェースを構成します:
例5-7 カスタム型付きバッファ・プラグイン・インタフェース
<?xml version="1.0" encoding="UTF-8"?>
<Deployment xmlns="http://www.bea.com/Tuxedo/SALTDEPLOY/2007">
. . . . . . .
. . . . . . .
<System>
<Plugin>
<Interface
id=”P_CREDENMAP”
name=”TEST”
library=”credmap_plugin.dll” />
</Plugin>
</System>
</Deployment>
親トピック: 発信認証プラグインのプログラミング