ポートレット開発ガイド

     前  次    目次     
ここから内容

Clipper ポートレットの作成

Clipper ポートレットは、他の web サイトの内容を表示します。Clipper ポートレットには、[web clipping] という処理を使用して、他の Web サイトのすべての内容または内容のサブセットを追加することができます。この章では、Clipper ポートレットを作成およびコンフィグレーションする方法について説明します。

この章では、次のトピックについて説明します。

 


はじめに

Clipping はポータルにコンテンツを追加するための簡単なテクニックです。他の Web サイトの全部または一部をクリップすることができます。ユーザはポータルから離脱しないで、他の Web サイトから効率的にコンテンツを表示またはコンテンツと対話することができます。

ブラウザ ポートレットという他の WLP 機能を使用してポータルにリモート Web ページ コンテンツを追加することもできます。ブラウザ ポートレットの詳細については、「ブラウザ ポートレット」を参照してください。Clipper ポートレットは、次の点でブラウザ ポートレットと異なっています。

 


Clipper ポートレットの作成

ポートレット ウィザードを使用して、Clipper ポートレットを作成します。手順は他のポートレット タイプの作成と同じです。

注意 : clipCustomClass プリファレンスは「Clipper ポートレットの外観の変更」の説明に従って指定した場合を除いて、クリップされた Web ページのテキストに対して後処理を実行しません。Clipped テキストは応答に逐語的に書かれます。元の Web ページが構文エラーを含む場合、Clipper ポートレットが表示される時、それらのエラーがコンシューマ ブラウザにも表示される。
  1. 現在開いていない場合、ポータル パースペクティブを開きます。
  2. [ファイル|新規|ポートレット] を選択します。
  3. [新規ポートレット] ダイアログで、ポートレットの名前を入力して、[終了] をクリックします。ポートレット ウィザードが開かれます。
  4. ポートレット ウィザードには、図 6-1 に示すように、Web Clipper ポートレットを選択して、[次へ] をクリックします。
  5. 図 6-1 Web Clipper ポートレットの選択


    Web Clipper ポートレットの選択

  6. [ポートレットの詳細] ダイアログには、ポートレットのタイトルを入力し、図 6-2 に示すようにリモート URL フィールドでクリップする Web サイトに URL を入力します。
  7. 図 6-2 リモート Web サイトの URL の指定


    リモート Web サイトの URL の指定

  8. 新しい Clipper ポートレットの作成には、[作成] をクリックします。
  9. Clipper ポートレット プロパティの変更」に示すように、プリファレンスを追加または編集して、必要に応じて Clipper ポートレットを変更します。
注意 : デフォルトでは、リモート サイトの <HEAD> 要素を含めて Clipper ポートレットの内容にすべての Web サイトが含まれています。

 


Clipper ポートレット プロパティの変更

ポートレットの特定のプロパティを設定して、Clipper ポートレットの外観を変更、Clipper ポートレットに表示される Web ページの内容を分類して認証できます。Clipper ポートレットのプロパティをプロパティ エディタまたは手動で変更できます。

この節では、次のトピックについて説明します。

プロパティ エディタの使用

タイトルバーまたはプレゼンテーション プロパティなどのポートレット プロパティの共通セットを編集するには、プロパティ エディタを使用できます。Clipper ポートレットはこれらのプロパティを他のポートレット タイプと共有し、プロパティを変更する手順は同じです。プロパティ エディタを通してポートレット プロパティの編集の詳細については、「ポートレット プロパティ」を参照してください。

プリファレンスとして Clipper プロパティの手動設定

Clipper ポートレットには、プロパティ エディタに表示されないおよび手動で設定する必要があるプロパティのセットを含みます。最も簡単な方法は、Clipper ポートレットのプロパティをポートレットのプリファレンスとして追加し設定することはプロパティを手動で変更ことです。

ヒント : WLP はクリップしたページの範囲を制御または認証するにはプリファレンスを提供します。それらのタスクの固有の情報について、「Clipper ポートレットの外観の変更」または「Clipper ポートレットの認証」を参照してください。

ポートレットのプリファレンスをセットするには、次の操作を行います。

  1. Clipper ポートレットのためにポートレット エディタを開きます。これを実行するには、プロジェクト エクスプローラ内のポートレット名前を右クリックして、[プログラムから開く|ポートレット エディタ] を選択します。
  2. ポートレット エディタ内のポートレット プリファレンス バーを右クリックして、[プリファレンスの追加] を選択します。図 6-3 にポートレット プリファレンス バーを示します。
  3. 図 6-3 ポートレット プリファレンス バー


    ポートレット プリファレンス バー

  4. プロパティ エディタに、図 6-4 に示すように、適切なフィールドにプリファレンス名またはプリファレンスの値を入力します。
  5. 図 6-4 プリファレンス名または値のフィールド


    プリファレンス名または値のフィールド

ポートレット プリファレンスの設定の詳細について、「ポートレット プリファレンス」を参照してください。

 


Clipper ポートレットの外観の変更

クリップする Web ページの部分を指定するには、ポートレット プリファレンスを設定できます。Java クラスの実装し、ポートレット プリファレンスとして指定して、クリップしたテキストを変更できます。表 6-1 に、これらのタスクを実行するために手動で設定できる Clipper ポートレット プリファレンスのセットの一覧を示し、説明します。プリファレンスの設定方法について、「Clipper ポートレット プロパティの変更」を参照してください。

注意 : プリファレンス clipXPath、clipStartText/clipEndText、または clipCustomClass (表 6-1 にリストされる) は排他的なものです。最初にシステムは clipCustomClass を検索します。そのクラスが存在しない場合、システムは clipXPath を検索します。clipXPath が存在しない場合、システムは clipStartText/clipEndText を検索します。

表 6-1 クリップするテキストを決定するためのプリファレンス
プロパティ名
プロパティ値
clipXPath
(省略可能な) リモート ページに適用される XPath。リモート ページは的確な形式の XML にする必要があります。このオプションを設定した場合、システムはリモート ページに XPath を適用し、Clipper ポートレットの出力での最初のノード テキストを格納します。
このオプションは、特定のテキストをクリップする方法の便利な方法を提供します。たとえば、このプリファレンス値は Web ページ テキストの <body> 要素を選択する XPath 式である html/body[1] の場合、このオプションを使用して、クリップする div 要素を指定することができます。
たとえば、//div[@id=”barracuda”] は <div id=”barracuda”> 要素をクリップします。
clipStartText、clipEndText
(省略可能な) クリップする Web ページ テキストの先頭と最後を検索するために使用される正規表現を指定します。たとえば、クリップするページは以下のように表示される場合、
Web サイト テキスト ... <abc> クリップするテキスト </abc> Web サイト テキスト ...
<abc> および </abc> を含めてその中のテキストをクリップするには、以下のプロパティおよび値を入力します。
clipStartText = <abc>
clipEndText = </abc>
XML .portlet ファイルに値を直接入力する場合、左山括弧をエスケープする必要があります。次に例を示します。
<netuix:preference name="clipStartText" value="&lt;abc>" modifiable="false"/>
<netuix:preference name="clipEndText" value="&lt;abc>" modifiable="false"/>
clipCustomClass
(省略可能な) このプリファレンスは、com.bea.netuix.clipper.IClipStrategy を実装するクラスの名前を指定します。このインタフェースで独自の clipping ロジックを定義できます。インタフェースには、実装する 1 つの方法があります。
String clip(String markup);
実装には、引数なしのコンストラクタがある必要です。clipCustomClass プリファレンスは実装をポートレットに登録します。
Web ページを選択的に書き換えるには IClipStrategy クラスを使用できます。たとえば、ページのテキストを置換または要素を表示しないようにできます。

 


Clipper ポートレットの認証

この節では、Clipper ポートレット用の認証のコンフィグレーション方法について説明します。一度コンフィグレーションした後、Clipper ポートレットの認証は自動的に実行されます。WebLogic Portal はClipper ポートレット認証の 2 つの方法をサポートします。

この節では、それらの 2 つの方法を説明します。

フォームベース認証

フォームベース認証はリモート サイトのサーバ サイド要求を通じて実行します。ポートレットでプリファレンスの設定によって、このタイプの認証をコンフィグレーションします。プリファレンスの設定手順は「Clipper ポートレット プロパティの変更」で説明します。

注意 : 現在、フォームベース認証に関連するセキュリティ制限があります。「Clipper ポートレットの制限事項」を参照してください。

フォームベース認証を設定するには、以下の手順に従います。

  1. authenticationType = Form を設定します。このプリファレンスは、フォームベース認証を可能にします。
  2. 表 6-2 にリストされているプリファレンスを設定して、認証を実行する HTTP 要求のビルド方法をサーバに指示します。
  3. 表 6-3 にリストされているプリファレンスを設定して、認証資格を提供します。
  4. 表 6-2 HTTP 要求プリファレンス
    プリファレンス名
    プリファレンス値
    loginFormUrl
    (必須) HTML <FORM> 要素の ACTION 属性。この URL に対して認証の要求を作成します。
    loginFormMethod
    (必須) HTML <FORM> 要素の METHOD 属性。値は GET また POST である必要があります。
    loginFormUserParam
    (必須) ログイン名がある要求パラメータの名前。
    loginFormPasswordParam
    (必須) ログイン パスワードがある要求パラメータの名前。
    loginFormExtraParams
    (省略可能な) 要求クエリに付加する文字列。設定される可能性があるカスタム パラメータを指定するには、この文字列を使用します。たとえば、フォームには、COLOR または SHAPE パラメータがある場合、以下のパラメータを使用して設定できます。
    loginFormExtraParams= COLOR=PURPLE&SHAPE=DIAMOND

認証資格を提供するには、以下のプリファレンスを使用します。

表 6-3 認証資格のプリファレンス
プリファレンス名
プリファレンス値
groupUsername
共有ユーザ名を指定します。
groupPassword
共有ユーザ名のパスワードを指定します。
personalUsername
ユーザごとにユーザ名を指定します。groupUsername は設定されている場合、これを無視します。
personalPassword
ユーザごとにパスワードを指定します。groupUsername は設定されている場合、これを無視します。

コード リスト 6-1 は、フォームベース認証のプリファレンスの例を示します。

コード リスト 6-1 フォームベース認証のプリファレンスの例
<netuix:preference name="remoteUrl" value="http://some.site.com" modifiable="false"/>
<netuix:preference name="loginFormUrl" value="http://some.site.com/login.action" modifiable="false"/>
<netuix:preference name="authenticationType" value="Form" modifiable="false"/>
<netuix:preference name="loginFormMethod" value="POST" modifiable="false"/>
<netuix:preference name="loginFormUserParam" value="os_username" modifiable="false"/>
<netuix:preference name="loginFormPasswordParam" value="os_password" modifiable="false"/>
<netuix:preference name="loginFormExtraParams" value="os_destination=abc" modifiable="false"/>
<netuix:preference name="groupUsername" value="your_username" modifiable="false"/>
<netuix:preference name="groupPassword" value="your_password" modifiable="false"/>

基本 HTTP 認証

基本 HTTP 認証を設定するには、以下の手順に従います。

  1. authenticationType = BasicHTTP を設定します。このプリファレンスは、フォームベース認証を可能にします。
  2. 表 6-3 にリストされているプリファレンスを設定して、認証資格を提供します。
  3. 表 6-4 認証資格のプリファレンス
    プリファレンス名
    プリファレンス値
    groupUsername
    共有ユーザ名を指定します。
    groupPassword
    共有ユーザ名のパスワードを指定します。
    personalUsername
    ユーザごとにユーザ名前を指定する。groupUsername は設定されている場合、これを無視します。
    personalPassword
    ユーザごとにパスワードを指定します。groupUsername は設定されている場合、これを無視します。

コード リスト 6-2 は基本 HTTP 認証のプリファレンスの例を示します。

コード リスト 6-2 基本 HTTP 認証のプリファレンスの例
<netuix:preference name="authenticationType" value="BasicHTTP" modifiable="false"/>
<netuix:preference name="groupUsername" value="your_username" modifiable="false"/>
<netuix:preference name="groupPassword" value="your_password" modifiable="false"/>

 


URL 書き換えのコンフィグレーション

この節では、Clipper ポートレットの移動可能なリンクまたはリソース URLを書き換える方法を説明します。

この節では、次のトピックについて説明します。

移動可能なリンクのコンフィグレーション

anchor リンクなどの移動可能なリンクは、以下のようにコンフィグレーションできます。

詳細について、「URL 書き換えコンフィグレーションの技術」を参照してください。

リソース URL のコンフィグレーション

リソース URL は 画像、スタイルシート、スクリプトなどをポイントします。WLP サーバからプロキシされるようにリソース リンクを書き換えるまたは書き換えないように Clipper ポートレットをコンフィグレーションできます。

デフォルトでは、WLP サーバでクリップされたページのクッキーが格納されるので、リソースがプロキシされる。たとえば、ファイアウォールが設定されているページをクリップした場合、ブラウザはリモート ページのリソースにアクセスできません。この場合、WLP サーバに通じてリソースの要求をルーティングする必要があります。ただし、このプロキシ処理は WLP サーバのパフォーマンスに影響するので、必要でない場合、プロキシ処理を無効化することができます。

詳細について、「URL 書き換えコンフィグレーションの技術」を参照してください。

URL 書き換えコンフィグレーションの技術

IClipperUrlFilter という Java クラスを実装して、またはポートレット プリファレンスの設定して URL の書き換え方法を設定できます。

IClipperUrlFilter の実装

リンク書き換えルールを定義するには、SPI インタフェースcom.bea.netuix.clipper.IClipperUrlFilter を提供します。このインタフェースには、コード リスト 6-3 にリストされている 3 つの方法があります。実装には、引数なしのコンストラクタがある必要です。urlFilter ポートレット プリファレンスを使用して、ポートレットに実装を登録します。次に例を示します。

<netuix:preference name="urlFilter" value="my.package.MyUrlFilterImpl" modifiable="false"/>

ポートレット プリファレンスの設定の詳細について、「プリファレンスとして Clipper プロパティの手動設定」または『ポートレット開発ガイド』にある「ポートレット プリファレンス」を参照してください。

コード リスト 6-3 IClipperUrlFilter メソッド
/** url は Clipper ポートレットからアクセスできるように設定しますか。
   * このメソッドは false を返した場合、この url を含む
   * 書き換えたリンクに空の値が存在します (たとえば、&lt;a href="forbidden.site.com"&gt;
   * リンクが &lt;a href="" &gt; に書き換え、この url をクリップする要求は
   * 404 応答を受信します。
   */
  boolean allowUrl(String url);

  /**
   * ポータル コンテキストに存在するようにこの url を書き換える必要がありますか。このメソッドは false
   * を返した場合、この url へのリンクをクリックすると、
   * Clipper ポートレットでなく、全ブラウザに新しいページが表示されます
   * 対象 url を示します。
   *
   * このメソッドは移動可能なリンクのみに適用します。
   * たとえば、anchor、form actions などのリンク。
   */
  boolean rewriteClickableUrl(String url);

  /**
   * 画像、スクリプトまたはスタイルのタグなどのリソース url 用。
   *
   *wlp サーバを通してリソースをプロキシするか、
   * または
   * 直接にリモート ページのオリジナルのリソースにリンクするか。
   */
  boolean rewriteResourceUrl(String url);

ポートレット プリファレンスの使用

リンクの書き換えを制御するには、独自のクラスを定義しない場合、これらのポートレット プリファレンスを使用できます。ポートレット プリファレンスの設定の詳細について、「プリファレンスとして Clipper プロパティの手動設定」または『ポートレット開発ガイド』にある「ポートレット プリファレンス」を参照してください。

注意 : <netuix:preference name="allowedUrlRegex" value=".*allowedlink.*" modifiable="false"/>

 


Clipper ポートレットおよび HTTPS

この節では、HTTPS URLで Clipper ポートレットを処理する方法について説明します。

HTTPS リンクをクリップした場合、リンクがポートレット ページの HTTPS リンクとして表示されます。

リモート サイトで HTTP URL から HTTPS URL にリダイレクトの原因となるクリップしたリンクをクリックすると、ポータル リクエストが HTTP URL から HTTPS URL にリダイレクトされます。ただし、次の例外があります。特定のブラウザ セッションに対するポータルへの初期の要求は HTTPS にリダイレクトされません。以下の項目で例外を説明します。

ページ www.xyz.comxyz.com/mail にリンクしています。このリンクは http://mail.google.com/mail をポイントします。このリンクをクリックすると、https://www.google.com/accounts/ServiceLogin へリダイレクトされます。

http://myportal.com ポータルでhttp://www.xyz.comをクリップし、ブラウザを起動して、クリップしたポータルのメール リンクをクリックすると、ポータルの要求が https://myportal.com へリダイレクトされます。たとえば、クリップしたページが https://www.xyz.com/accounts/ServiceLogin へリダイレクトされ、そのページが表示されます。

http://mail.xyz.com/mail をクリップし、ブラウザを起動し、ポータルを開くと、HTTPS へリダイレクトされません。クリップしたページに対して、たとえば、https://www.zyz.com/accounts/ServiceLogin へのリダイレクト設定が適用され、内容が適切に表示されますが, ブラウザから WLP サーバへのルートは HTTPS を使用しません。そのページの「サインイン」フォームに HTTPS アクション URL があるので、クリップしたフォームのアクションは https://myportal.com をポイントします。

同様に、https://www.xyz.com/accounts/ServiceLogin をクリップし、ブラウザを起動して、http://myportal.com に移動すると、最初の要求で HTTPS へリダイレクトされません。

 


証明書および WebLogic Server

WLS がサイトに HTTPS 要求を作成するには、そのキーストアに該当サイトの証明書がある必要があります。証明書がない場合、以下のような例外が表示されます。

[Security:090477]Certificate chain received from aaa.bbb.com - 10.123.45.67 was not trusted causing SSL handshake failure.

WLS での SSL コンフィグレーションの詳細について、e-docs の WLS ドキュメント「ID と信頼のコンフィグレーション」を参照してください。HTTPS を正しく使用するには、Clipper ポートレットをコンフィグレーションする基本な手順は以下の通りです。

  1. クリップするサイトのセキュリティ証明書を取得します。
  2. ヒント : 「Cert Viewer Plus」という Firefox plugin を使用して証明書を取得できます。このプラグインでセキュリティ証明書をビューおよび保存できます。
  3. コマンド シェルを開いて、ドメインのルート ディレクトリに移動します。
  4. 信頼キーストアを検索します。たとえば、DemoTrust.jks.
  5. キーストアのパスワードを取得します。
  6. キーをインポートするには、Java keytool プログラムを使用します。次に例を示します。
  7. keytool -import -file my_certificate_file -keystore DemoTrust.jks -alias some_unique_alias

    エイリアス値は .jks ファイルのユニークなエリアスです。以下のコマンドを使用してエリアスをビューすることができます。

    keytool -list -keystore DemoTrust.jks

 


Clipper ポートレットの再設定

クリップした Web ページのリンクをクリックすると、クリップされた元の URL を回復するには、ブラウザを再起動する必要があります。

 


Clipper ポートレットでバッキング ファイルの使用

Clipper ポートレットには、そのバッキング ファイルがあります。バッキング ファイルの詳細について、『ポートレット開発ガイド』にある「 バッキング ファイル」を参照してください。

Clipper ポートレットに独自のバッキング ファイルを追加するには、次の操作を行います。

 


サーバの実行中は、ポートレット プリファレンスの更新

.portlet ファイルにある Clipper ポートレットのプリファレンスを変更した場合、WEB-INF/netuix-config.xml ファイルに以下の属性を設定しない限り、実行時に変更が反映されません。

<propagate-preferences-on-deploy propagate-to-instances='true' master='file'/>

Administration Console に変更したプリファレンスが自動的に使用されます。

 


Clipper ポートレットの制限事項

Clipper ポートレット機能の確認済みの制限事項は以下のとおりです。これらの制限事項は今後のリリースに適用しない場合があります。


ページの先頭       前  次