108
Oracle® WebCenter Sites Web エクスペリエンス管理フレームワーク 開発者ガイド 11g リリース 1 (11.1.1) 部品番号 : B69685-01 2012 4

Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

Oracle® WebCenter SitesWeb エクスペリエンス管理フレームワーク開発者ガイド

11g リリース 1 (11.1.1)

部品番号 : B69685-01

2012 年 4 月

Page 2: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

Oracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド , 11g リリース 1 (11.1.1)

部品番号 : B69685-01

原本名 : Oracle® WebCenter Sites Developer's Guide for the Web Experience Management Framework, 11g Release 1 (11.1.1)

原本著者 : Tatiana Kolubayev

原本協力著者 : Melinda Rubenau

原本協力者 : Bill Habermaas、Alex Vushkan

Copyright © 2012 Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバースエンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次の Notice が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアは、危険が伴うアプリケーション ( 人的傷害を発生させる可能性があるアプリケーションを含む ) への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、それを安全に使用するために、適切な安全装置、バックアップ、冗長性 (redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

Oracle および Java は Oracle Corporation およびその関連企業の登録商標です。その他の名称は、他社の商標の可能性があります。

Intel および Intel Xeon は Intel Corporation の商標または登録商標です。すべての SPARC の商標はライセンスをもとに使用し、SPARC International, Inc. の商標または登録商標です。AMD、Opteron、AMD ロゴ、AMD Opteron ロゴは、Advanced Micro Devices の商標または登録商標です。UNIX は、X/Open Company, Ltd のライセンスによる登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

Page 3: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

3

目次

このガイドについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7対象読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7関連ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8サード・パーティ・ライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1 Oracle WebCenter Sites: WEM フレームワークの概要 . . . . . . . . . . . . . . . . . . 9概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10アプリケーション開発の前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19WEM フレームワーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20REST サービス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20UI コンテナ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

登録. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22WEM コンテキスト・オブジェクト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

シングル・サインオン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24認可モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25カスタム・アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 「Articles」サンプル・アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

「Articles」サンプル・アプリケーションの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31「Articles」アプリケーションのビルドおよびデプロイ . . . . . . . . . . . . . . . . . . . 31「Articles」サンプル・アプリケーションの登録 . . . . . . . . . . . . . . . . . . . . . . . . . 32

「Articles」アプリケーションのテスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 アプリケーションの開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38アプリケーションの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38REST コールの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 4: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

目次4

JavaScript からの REST コールの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Java からの REST コールの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

バイナリ・データを処理する URL の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

同一ドメイン用の実装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46クロスドメイン用の実装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46コンテキスト・オブジェクトで使用可能なメソッド. . . . . . . . . . . . . . . . . . . . . 48

登録コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49iframe ビューを使用するアプリケーションの登録 . . . . . . . . . . . . . . . . . . . . . . 49JavaScript ビューおよび HTML ビューを使用するアプリケーションの登録. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5 カスタム REST リソースの開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53「Recommendations」サンプル・アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . 54

概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54アプリケーションのビルドおよびデプロイ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54アプリケーションのテスト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

REST リソースの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55アプリケーションの構造. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55カスタム REST リソースの実装手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6 本番サイトでのシングル・サインオン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58SSO サンプル・アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59SSO サンプル・アプリケーションのデプロイ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59アプリケーションの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60シングル・サインオンの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61シングル・サインアウトの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7 REST リソースの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64REST リソースの認証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Java コードからのチケットの取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65他のプログラミング言語からのチケットの取得 (HTTP を経由 ) . . . . . . . . . . 66スタンドアロン・アプリケーションの SSO 構成 . . . . . . . . . . . . . . . . . . . . . . . . 69

CAS の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73REST 認可 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

セキュリティ・モデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74REST リソースへのセキュリティ・モデルを使用したアクセス . . . . . . . . . . . 75REST セキュリティの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75権限解決アルゴリズム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

REST を介したアセットの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

8 Customizable Single Sign-On ファシリティ . . . . . . . . . . . . . . . . . . . . . . . . . 78WEM フレームワークのログイン動作のカスタマイズ . . . . . . . . . . . . . . . . . . . . . . 79デフォルト CSSO 実装のコンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80カスタム SSO 動作の構成およびデプロイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

デフォルト CSSO クラスの拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Java クラスをインスタンス化するための Spring での指定 . . . . . . . . . . . . . . . 84

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 5: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

目次5

外部ユーザー識別子から WebCenter Sites 資格証明へのマッピング . . . . . . . 88CAS Web アプリケーションの再起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

CSSO サンプル実装の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90サンプル CSSO クラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91サンプル Spring 構成ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93サンプル CSSO コンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

9 バッファリング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98バッファリングの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

付録 A.アプリケーションの手動登録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101登録手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102リファレンス : 登録アセット・タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

FW_View アセット・タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105FW_Application アセット・タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 6: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

目次6

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 7: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

7

このガイドについて

このガイドでは、アプリケーション開発に関係する Oracle WebCenter Sites: Webエクスペリエンス管理 (WEM) フレームワークについて説明します。さらに、WEM フレームワークの概要を説明した後で、アプリケーションおよびRepresentational State Transfer (REST) のカスタム・リソースの開発プロセスについて説明します。また、このガイドでは、シングル・サインオン (SSO) の実装とカスタマイズについても説明します。

このガイドで説明するアプリケーションは、以前は FatWire 製品でした。命名規約は次のとおりです。

• Oracle WebCenter Sites は、以前は FatWire Content Server として知られていたアプリケーションの現在の名称です。このガイドでは、Oracle WebCenter Sites を WebCenter Sites とも呼びます。

• Oracle WebCenter Sites: Web エクスペリエンス管理フレームワークは、以前はFatWire Web Experience Management Framework として知られていた環境の現在の名称です。このガイドでは、Oracle WebCenter Sites: Web エクスペリエンス管理フレームワークを WEM フレームワークとも呼びます。

対象読者

このガイドは、WebCenter Sites 開発者を対象としています。ユーザーは、WebCenter Sites 管理インタフェース、ベーシック・アセット・モデルとフレックス・アセット・モデル、Asset API および ACL に関する広範な知識を有していることが前提とされます。また、サイトやロールの概念についても熟知している必要があります。さらに、Representational State Transfer (REST)、Central Authentication Service (CAS)、Java Server Pages Standard Tag Library (JSTL)、Java、JavaScript、Jersey および Spring MVC フレームワークの実用的な知識を見に付けている必要があります。

関連ドキュメント

詳細は、次のドキュメントを参照してください。

• 『Oracle WebCenter Sites 管理者ガイド』

• 『Oracle WebCenter Sites 開発者ガイド』

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 8: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

このガイドについて 8

• 『Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク管理者ガイド』

• Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST APIリソース・リファレンス

• Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST API Bean リファレンス

表記規則

このガイドでは次の表記規則を使用します。

• 太字は、選択対象の Graphical User Interface 要素を示します。

• イタリックは、ユーザーが特定の値を指定する変数を示します。

• 固定幅フォントは、ファイル名、URL、サンプル・コード、または画面に表示されるテキストを示します。

• 太字の固定幅フォントは、コマンドを示します。

サード・パーティ・ライブラリ

Oracle WebCenter Sites およびそのアプリケーションには、サード・パーティ・ライブラリが含まれています。詳細は、Oracle WebCenter Sites 11gR1: サード・パーティ・ライブラリを参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 9: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

9

第 1 章

Oracle WebCenter Sites: WEM フレームワークの概要

• 概要

• アプリケーション開発の前提条件

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 10: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

概要10

概要Oracle WebCenter Sites: Web エクスペリエンス管理 (WEM) フレームワークは、アプリケーションを開発し、そのアプリケーションを Oracle WebCenter Sites と統合するためのテクノロジを備えています。単一の管理インタフェースであるWEM Admin は、アプリケーション管理およびユーザー認可の一元化をサポートします。また、シングル・サインオンを使用することによって、ユーザーはセッションで 1 度ログインするだけで、許可されているすべてのアプリケーションにアクセスできるようになります。

WEM フレームワークにはコンテンツ管理プラットフォームが必要です。このリリースでは、WEM フレームワークは Oracle WebCenter Sites 上で稼働します。また、WebCenter Sites Representational State Transfer (REST) API が同梱されています。サイト、ユーザーおよびデータ・モデルなど、WebCenter Sites データベース内のオブジェクトは、WEM フレームワーク内の REST リソースにマップされます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 11: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

概要11

アプリケーシ

WEM フレームワーク上に実装されたアプリケーションは、REST サービスを介して WebCenter Sites データベースと通信を行います。アプリケーションはWEM Admin の「アプリケーション」ページ ( 図 1) にリスト・アイテムとして表示されます。管理者はユーザーの認可を行う際に、アプリケーションおよびアプリケーションのリソースへのアクセスも構成します。そのため、WEM Admin インタフェースでは、メニュー・バー上のリンクを介して認可アイテムが ( アプリケーションとともに ) 公開されます。

図 1: WEM Admin の「アプリケーション」ページ

ョン

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 12: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

概要12

図 2 に示すようにアイテムを結合することによって、ユーザーにアプリケーションの使用を許可します。

図 2: 認可モデル

結合処理が完了すると、ユーザーはデータベース・レベル、REST レベルおよびアプリケーション・レベルで認可されます。

WebCenter Sites に習熟した開発者は、WEM フレームワークではアプリケーションへのアクセスを制御するためにサイトおよびロールの使用方法が拡張されていることに気付くはずです。一方、WebCenter Sites とは異なり、WEM Admin インタフェースはデータ・モデルは公開せず、REST API を公開します。この点において、WEM Admin は、WebCenter Sites Admin インタフェースでサ

• アプリケーションおよびユーザーは、ロールを介してサイトに割り当てられます。

• 同一サイトのユーザーとアプリケーションでロールを共有すると、そのサイトのアプリケーションへのアクセスがユーザーに付与されます。

• ユーザーはグループに割り当てられます。グループはアプリケーションのリソース (REST リソース ) へのアクセスを制御します。

• ACL はユーザーに割り当てられ、ユーザーにシステムへのアクセスを提供します。

一般管理者は WEM Admin を使用して、サイト、アプリケーション、ユーザーおよびロールの作成および管理を行います。グループおよびACL は WebCenter Sites Admin インタフェースで構成する必要があります。 これらは WEM Admin のユーザー・アカウントで公開されます。

ACL はシステムへのアクセスを制御します。

WebCenter Sites 内のグループは REST( アプリケーションのリソース ) へのアクセスを制御します。

ロールはサイトおよびサイト上のアプリケーションへのアクセスを制御します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 13: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

アプリケーション開発の前提条件13

ポートされる、(ACL およびグループを構成するための ) 認可インタフェースであると厳密に見なすことができます。

開発者が WEM Admin を使用することはほとんどありませんが、ユーザー認可の背景にある概念を理解しておくことにより、アプリケーション開発に役立つ場合があります。このガイドの以降の部分では、アプリケーション開発に関係するWEM フレームワークについて説明し、アプリケーション・コードの例を示します。

アプリケーション開発の前提条件アプリケーション開発には、アプリケーション・ロジックのコーディング、アプリケーションのデプロイに加え、管理者がアプリケーションを管理したり、他のユーザーに提供したりできるように、アプリケーションを登録して WEM Admin で公開することも含まれます。このガイドは、アプリケーション開発のチュートリアルではありません。経験を積んだアプリケーション開発者が WEMフレームワークの使用方法を習熟できるようにするためのリファレンスです。このガイドのユーザーは、WebCenter Sites に習熟し、この項に記載されているテクノロジについて実用的な知識を身に付けた開発者であることが求められます。必要なリソースについては以降にも記載されています。

テクノロジ• Representational State Transfer (REST)。WebCenter Sites プラットフォーム

との通信に使用されます。

• Central Authentication Service (CAS)。WebCenter Sites のインストール時にデプロイされ、WEM のシングル・サインオンをサポートします。

• Java Server Pages Standard Tag Library (JSTL)、Java、JavaScript、Jersey および Spring MVC フレームワーク。WEM に付属の「Articles」サンプル・アプリケーションのコードを実行します。

WebCenter Sites のインタフェース、オブジェクトおよび API開発者は次に関する実用的な知識を身に付けている必要があります。

• WebCenter Sites Admin(WebCenter Sites 管理インタフェース )

• WebCenter Sites のベーシック・アセット・モデルおよびフレックス・アセット・モデル

• Asset API

• ACL。データベース表を保護し、表に対して実行可能な操作のタイプを定義します。

• サイトおよびロールの概念

ドキュメントこのガイドの手順では、次のドキュメントが必要になります。

• Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST APIリソース・リファレンス

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 14: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

アプリケーション開発の前提条件14

• Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST API Bean リファレンス

WebCenter Sites のデータ・モデルおよび Asset API の詳細は、『Oracle WebCenter Sites 開発者ガイド』を参照してください。ACL、サイト、ロールの詳細およびこれらの WebCenter Sites での使用方法については、『Oracle WebCenter Sites 管理者ガイド』を参照してください。

サンプル・アプリケーションおよびファイル• このガイドでは次のサンプル・アプリケーションを使用します。

- Articles。軽量なコンテンツ管理アプリケーションです。 - SSO サンプル・アプリケーション。本番サイト用の小規模な認証アプリ

ケーションです。このアプリケーションは wem-sso-api-cas-sample.warとしてパッケージされています。

- Recommendations。REST リソースの作成プロセスを示します。

• このガイドでは、ログイン動作のカスタマイズについて説明する際にCustomizable Single Sign-On ファシリティを使用します。

• WEM フレームワークには、弊社の API を使用した、クロスドメインの実装方法および REST を介したアセットの管理方法を示すサンプル・ファイルが付属されています。

すべてのサンプル・アプリケーションおよびファイルは、WebCenter Sites インストール・ディレクトリ内の Misc/Samples/WEM Samplesフォルダにあります。

アプリケーション・アクセスこのガイドを使用するとき、または開発やテストを行うときには、次に示すアプリケーションの一部またはすべてにアクセスします。

• CAS Web アプリケーション。次のように、このアプリケーションの URL を「Articles」サンプル・アプリケーションで指定して、シングル・サインオンを有効にします。

http://<server>:<port>/<cas_application_context>/login

<server>は、CAS が実行されているマシンのホスト名または IP アドレス、<cas_application_context>は、CAS Web アプリケーションのコンテキスト・パスです。

• WebCenter Sites Admin インタフェース。アプリケーションを手動で登録する場合は次のように指定します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 15: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

アプリケーション開発の前提条件15

http://<server>:<port>/<cs_application_context>/Xcelerate/LoginPage.html

WebCenter Sites のインストール・プロセスで使用した一般管理者 ( または同等の一般管理者 ) の資格証明でログインします。デフォルトのログイン資格証明は fwadmin/xceladminです (WEM Admin へのログインでも同様 )。

• WEM Admin。アプリケーション登録プロセスの結果をテストするには、次のように指定します。

http://<server>:<port>/<cs_application_context>/login

fwadmin( または同等のユーザー ) でログインします。画面の順序は次のとおりです。

1. 「ログイン」画面 :

注意

WebCenter Sites システムの一般管理者は、WEM フレームワーク専用に構成されます。fwadminは、インストール・プロセスでRestAdminグループに自動的に追加され、REST サービスに無制限にアクセスできるように設定されています。また、WEM Admin インタフェースが実行される AdminSite で有効化されています。WEM に関連する WebCenter Sites の変更内容の詳細は、Oracle WebCenter Sites インストレーション・ガイドを参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 16: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

はじめに16

2. 「遷移」画面 ( 初めてログインする場合または初めてアクセスするサイトにアクセスする場合 )。次のように「AdminSite」と 初のアイコン「管理」を選択します。

3. WEM Admin の「サイト」ページ。登録済のアプリケーションが「アプリケーション」ページに一覧表示されます。

はじめにこのガイドの各章は順序に関係なくお読みいただけます。

• WEM フレームワークの詳細は、第 2 章「概要」を参照してください。

• 「Articles」アプリケーションのデモについては、第 3 章「「Articles」サンプル・アプリケーション」を参照してください。

• 「Articles」アプリケーションのコード、プログラムによるアプリケーションの登録、およびクロスドメインの実装の詳細は、第 4 章「アプリケーションの開発」を参照してください。( 手動によるアプリケーションの登録の例は、付録 A を参照してください。)

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 17: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

はじめに17

• REST リソースの作成の詳細は、第 5 章「カスタム REST リソースの開発」を参照してください。

• SSO サンプル・アプリケーションのデモについては、第 6 章「本番サイトでのシングル・サインオン」を参照してください。

• システム・セキュリティの詳細は、第 7 章「REST リソースの使用」を参照してください。

• WEM フレームワークのログイン動作のカスタマイズの詳細は、第 8 章「Customizable Single Sign-On ファシリティ」を参照してください。

• バッファリングの詳細は、第 9 章「バッファリング」を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 18: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 1 章 Oracle WebCenter Sites: WEM フレームワークの概要

はじめに18

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 19: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

19

第 2 章

概要

• WEM フレームワーク

• REST サービス

• UI コンテナ

• シングル・サインオン

• 認可モデル

• カスタム・アプリケーション

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 20: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

WEM フレームワーク20

WEM フレームワーク アプリケーション開発者の環境は、REST サービスを介して WebCenter Sites 上で稼働する WEM フレームワークで構成されます。任意の言語でアプリケーションを作成し、WebCenter Sites に REST コールを実行できます。カスタム・アプリケーションは、プラットフォームのアプリケーション・サーバー以外のアプリケーション・サーバーにデプロイすることが可能なため、プラットフォームのデプロイメント・インフラストラクチャから切り離してアプリケーションを作成できます。

アプリケーション開発は次のコンポーネントによってサポートされます ( この章にある各コンポーネントの項も参照してください )。

• REST サービス。WebCenter Sites オブジェクトへのアクセスを提供する一連のプログラム・インタフェースです。

• UI コンテナ。登録済のアプリケーションを公開します。登録を行うと、アプリケーションのインタフェースがレンダリングされます。UI コンテナはWEM コンテキスト・オブジェクトもサポートしています。WEM コンテキスト・オブジェクトは、アプリケーションでログイン済ユーザーや現在のサイトに関する詳細情報を WEM フレームワークから取得するために使用します。

• シングル・サインオン (SSO)。認証済ユーザーがそのセッションで 1 度ログインするだけで、許可されているすべてのアプリケーションにアクセスできるようにします。(WEM のシングル・サインオンをサポートする Central Authentication Service Web アプリケーションが WebCenter Sites のインストール・プロセスでインストールされます。)

• REST 認可モデル。REST リソースに対するアクセスをグループ・メンバーシップに基づいてきめ細かく制御します。アプリケーション開発では、事前定義済ユーザーをコードで指定する場合を除いて、認可には直接関与しません ( 認可は、WEM Admin および WebCenter Sites Admin インタフェースでグラフィックな方法で構成します )。

WEM Admin は、WEM フレームワークの一部ですが、アプリケーション開発ではほとんど使用しません。主にアプリケーション登録プロセスの結果をテストする際、あるいはサイト、ユーザー、グループおよびロールに関する管理情報を取得する際に使用します。WEM Admin の詳細は、『Oracle WebCenter Sites Webエクスペリエンス管理フレームワーク管理者ガイド』を参照してください。

REST サービスREST API は、次の WebCenter Sites データ・モデルを公開します。

• ベーシック・アセット・タイプおよびベーシック・アセット ( 読取り / 書込み )

• フレックス・アセット・タイプおよび定義 ( 読取り専用 )• フレックスの子と親 ( 読取り / 書込み )• 索引付けによるアセット検索のサポート

REST API は次のオブジェクトも公開します。これらのオブジェクトは主に管理者が認可プロセスで使用します ( オブジェクトは WEM Admin インタフェースに表示されます )。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 21: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

REST サービス21

• サイト ( 読取り / 書込み ) • ユーザー ( 読取り / 書込み )• ロール ( 読取り / 書込み )• ACL( 読取り専用 )• グループ ( 読取り専用 )。REST レイヤーへのアクセスを制御するためにこの

リリースで導入されました。 • 補助サービス : ユーザー・ロケールおよびサーバーのタイムゾーン

( サイト、ロールおよびユーザーは WEM Admin で構成可能です。ACL およびグループは WEM Admin の「ユーザー」に読取り専用アイテムとして公開されます。ACL およびグループは WebCenter Sites Admin インタフェースで構成する必要があります。)

WebCenter Sites 内のオブジェクトは WEM 内の REST リソースにマップされます。パブリッシュ、ワークフロー、データベース管理ツールおよびページ・キャッシュなど、その他の機能に対しては、WebCenter Sites Admin インタフェースからまたは JSP や XML タグを使用してアクセスする必要があります。

一般管理者が管理する認可オブジェクトのうち、サイトとロールは、要件によってはアプリケーション開発の対象となる可能性が高いオブジェクトです。事前定義済ユーザーを指定することで、管理者の認可タスクを簡略化することも可能です。

• サイト : アプリケーションのアセット・タイプをプログラムでインストールする必要がある場合は、そのアセット・タイプを有効にするサイトをコードで 1 つ以上指定する必要があります ( アセットに対してサイト固有のアクセスを行うにはそれらのアセット・タイプが 1 つ以上のサイトで有効でなければなりません )。それ以外の場合は、サイトを指定せずにアセット・タイプをインストールします。その後、管理者が WebCenter Sites Admin インタフェースを使用して、独自に選択したサイトでこのアセット・タイプとアセットを有効にします。

• WEM のロールは、アプリケーションへのアクセスを管理するために使用されます。同一サイトのユーザーとアプリケーションでロールを共有すると、そのサイトのアプリケーションへのアクセスがユーザーに付与されます。 ロールをアプリケーション・コードで使用すると、「編集」などのインタフェース機能を保護できます。WebCenter Sites Admin インタフェースはロールで保護されたインタフェース機能を備えたアプリケーションの実例です。

• ユーザー : アプリケーション・コードで指定する可能性のある唯一のユーザーは「事前定義済」ユーザーで、指定することにより管理者の認可タスクが簡略化されます。ユーザーを指定する場合、ユーザー名とパスワードをコーディングする必要があります。管理者はすべてのアプリケーション・ユーザーを REST レベルで個別に認可するかわりに事前定義済ユーザーを認可します。ログイン済ユーザーがアプリケーションにアクセスすると、事前定義済ユーザーに付与された権限がログイン済ユーザーに渡されます。事前定義済ユーザーおよび認可モデルの詳細は、25 ページを参照してください。

サイトやロールがシステム全体でどのように使用されるのかを把握しておくことは管理者のタスクの一つですが、それにはアプリケーション開発者からのサポートが必要です。WebCenter Sites プラットフォームがステージング・システム機能を兼ねる場合、WEM フレームワークで WebCenter Sites データベースが使用されるため、全体を把握しておくことが特に重要になります。たとえば、WEM Admin で作成されたサイトはデータベースに格納されます。それらのサイトは

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 22: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

UI コンテナ22

ステージング用の WebCenter Sites では使用されない可能性がありますが、専用の CM サイトとともに WebCenter Sites Admin インタフェースで公開されます。一方、CM 用に WebCenter Sites Admin インタフェースで作成されるサイトはWEM Admin で公開されるので、他のアプリケーションをそれらのサイトに割り当てることができます。開発者は、ユーザーが正しく認可されるように、カスタム・アプリケーションの特徴 ( ユーザーが使用するリソース、ロールで保護されたインタフェース機能、事前定義済ユーザーなどがある場合はその内容 ) を管理者に伝える必要があります。

UI コンテナUI コンテナは登録済のアプリケーションを公開し、コンテキスト・オブジェクトをサポートします。コンテキスト・オブジェクトはアプリケーションで WEMフレームワークから情報を取得するために使用します。

登録

アプリケーションを登録する目的は、管理者がアプリケーションを管理したり、他のユーザーに提供したりできるように、WEM Admin でアプリケーションを公開することです。登録を行うと、そのアプリケーションがアセットとして認識され、次のことが実行されます。

• WEM Admin の「アプリケーション」ページにアプリケーションが一覧表示されます ( 図 3)。

• アプリケーションを表すために選択したアイコンが配置されます。

• WebCenter Sites のログイン・ページ、およびアプリケーションが割り当てられている各サイトのアプリケーション・バー ( 図 3) にアプリケーションのアイコンが表示されます。

• アプリケーションのアイコンが選択された際にアプリケーションのインタフェースがレンダリングされます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 23: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

UI コンテナ23

このサイトで

ザーが使用で

アプリケーシ

選択されてい

アプリケーシ

登録済の

アプリケーシ

図 3: UI コンテナに表示された登録済アプリケーション

アプリケーションの登録にはビューの登録も含まれます。複数の共有ビューがサポートされますが、単一の非共有ビューを使用するアプリケーションが一般的です ( このガイドでも使用しています )。iframe、HTML および JavaScript のタイプのビューを使用できます。

登録をサポートするために、WEM フレームワークにはベーシック・アセット・タイプ FW_Applicationと FW_Viewが付属しています。いずれも、WebCenter Sites のインストール・プロセスで WEM オプションを選択した場合に作成されます。これらのアセット・タイプは、AdminSite においてデフォルトで有効になります (WebCenter Sites のインストール・プロセスで作成されます )。

アプリケーションを登録するには ( デプロイされている場合 )、FW_Applicationインスタンスの作成、各ビュー用の FW_Viewインスタンスの作成、および FW_Applicationインスタンスへの FW_Viewインスタンスの関連付けが必要です。他のサイトでアプリケーションを使用する場合でも、そのアプリケーションを AdminSite で登録する必要があります。登録すると、アプリケーションを他のサイトに割り当てることができます。

アプリケーションは、REST API のアプリケーション・サービスを介してプログラムから登録することも、WebCenter Sites Admin インタフェースから手動で登録することもできますが、プログラムによる登録をお薦めします。例については、32 ページの「「Articles」サンプル・アプリケーションの登録」を参照してくだ

ユー

きる

ョン

ョン

アプリケーション・バー 公開されるアプリケーションは サイトおよびそのサイト内でのユーザーの権限によって異なります。

ョン

現在のサイト

UI コンテナ

現在のユーザー

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 24: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

シングル・サインオン24

さい。一般的な手順については、49 ページの「登録コード」を参照してください。( 手動登録の例は、付録 A を参照してください。)

WEM コンテキスト・オブジェクト

UI コンテナは、コンテナ内のすべてのアプリケーションに JavaScript コンテキスト・オブジェクト (WemContext) を提供します。コンテキスト・オブジェクトは、アプリケーションでログイン済ユーザーやサイトに関する詳細情報を WEMフレームワークから取得する際に使用されます ( たとえば、UI コンテナから現在のサイトの名前を取得します )。また、コンテキスト・オブジェクトは、アプリケーションでデータを共有する際に使用する各種ユーティリティ・メソッドも提供します。コンテキスト・オブジェクトは、WebCenter Sites と同一ドメインまたは異なるドメインで実行されているアプリケーションで使用できます。 詳細は、45 ページの「コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス」を参照してください。

シングル・サインオンシングル・サインオンは、Central Authentication Service (http://www.jasig.org/cas) を使用して実装されています。サンプル「Articles」の例で示すように、WEM フレームワークに付属のサーブレット・フィルタは、Java Web アプリケーションとしてデプロイされたアプリケーションには追加設定なしで使用できます。別のテクノロジを使用してアプリケーションをデプロイしている場合は、次の URL にアクセスして、選択したテクノロジに固有の CAS クライアントを参照してください。

http://www.ja-sig.org/wiki/display/CASC/Official+Clients

CAS で保護されたアプリケーションにユーザーがアクセスしようとすると、次の手順で認証システムが応答します。

1. 初回アクセス

a. CAS で保護されたアプリケーションにユーザーが 初にアクセスしようとしすると、

b. ユーザーは CAS ログイン・ページにリダイレクトされます。ログインに成功すると、

c. ユーザーはチケットとともにアプリケーションに再びリダイレクトされます。CAS ログイン・ページの Cookie が保存されます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 25: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

認可モデル25

d. アプリケーションはユーザーの ID を検証するために、CAS に対してチケットを検証します。 ( コンテンツ管理システムでは、CAS はデフォルトで WebCenter Sites データベースに対して認証を行います。)

2. 2 回目以降のアクセス

a. CAS で保護された別のアプリケーションにユーザーがアクセスしようとすると、ユーザーは CAS ログイン・ページにリダイレクトされます。

b. リクエストから Cookie が取得されて暗黙的ログインが実行され、ログイン・ページは省略されます。

c. ユーザーはチケットとともにアプリケーションに再びリダイレクトされます。

d. アプリケーションはユーザーの ID を検証するために、CAS に対してチケットを検証します。

認可モデル

認可とは、アプリケーションへのアクセスをユーザーに付与するプロセスです。一般管理者は、図 4 に示すように WEM Admin を使用してオブジェクトを結合することにより認可を行う必要があります。開発者は、アプリケーションで事前定義済ユーザーをコーディングすることにより管理者のタスクを簡略化できます。以降では、ユーザーを認可モデルに適合させる方法について説明します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 26: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

認可モデル26

図 4: 認可モデル

図 4 では、サイト、アプリケーション、ユーザーおよびロールには、それぞれに対応する WEM Admin のメニュー・オプションがあります。ACL およびグループは各ユーザーのページで公開されます。

認可は 3 つのレベル ( アプリケーション、REST およびデータベース ) で管理されます。

• アプリケーション・レベルの認可では、同一サイトのユーザーとアプリケーションでロールを共有する必要があります。これにより、そのサイトのアプリケーションへのアクセスがユーザーに付与されます。インタフェース機能

サイト、アプリケーション、ユーザーおよびロールは WEM Admin で構成できます。

グループおよび ACL は WebCenter Sites Admin インタフェースで構成する必要があります。 それらは WEM Admin で公開されます。

WEM Admin のメニュー・バー

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 27: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

認可モデル27

がロールで保護されている場合は、それらのロールも同様にアプリケーション・ユーザーで共有する必要があります。

• REST レベルの認可では、ユーザーがアプリケーションのリソースを操作するための権限を制限します (ACL が正しく割り当てられていることが前提です )。REST レベルの認可では、REST リソースにマップされるオブジェクトへの操作権限を持つグループを構成する必要があります。グループに割り当てられたユーザーにはグループの権限が付与されます。

開発者は、アプリケーションで ( ユーザー名とパスワードによって ) ユーザーを定義することにより、ログイン済ユーザーのプロキシとして動作させることができます。こうすることで、管理者が各ログイン済ユーザーに対して REST セキュリティを構成する必要がなくなります。アプリケーションのデプロイおよび登録後に、一般管理者はその事前定義済ユーザーを次の手順で認可します。1) 事前定義済ユーザーがアプリケーションにアクセスできるように WEM Admin で構成します。2) (WebCenter Sites Admin インタフェースで ) アプリケーションのリソースに対する操作権限を持つグループを構成します。3) (WEM Admin または WebCenter Sites Admin インタフェースを使用して ) 事前定義済ユーザーをグループに割り当てます。グループの権限は事前定義済ユーザーに引き継がれ、その後、ユーザーがアプリケーションにアクセスするとログイン済ユーザーに引き継がれます。サポートされるセキュリティ構成に関する説明と一覧は、73 ページの「REST認可」を参照してください。(WEM フレームワークに付属の「Articles」サンプル・アプリケーションでは事前定義済ユーザーを指定しています。)

• データベース・レベルでは、そのユーザーのグループ・メンバーシップにかかわらず、ACL によって個々のユーザーのシステムへのアクセス ( つまり、ログイン権限、データベースの操作権限 ) が決定されます。ACL でユーザーに適切な権限が割り当てられておらず、データベース表への権限が不足している場合、グループのメンバーシップによってそれらの権限が付与されることはありません。

デフォルトの ACL では、多くのデータベース表で使用されるオブジェクトに対してほぼ無制限の操作権限 ( 手段ではありません ) がユーザーに提供されます。それらの権限を調整するには、REST レベルで、ユーザーのグループ・メンバーシップによって直接調整するか ( 事前定義済ユーザーが存在しない場合 )、アプリケーションの事前定義済ユーザーとそのユーザーのグループ・メンバーシップによって間接的に調整します。オブジェクトに対するグループの操作権限を変更すると、そのグループ・メンバーのリソースに対する操作権限も変更されます。WebCenter Sites 側の同一ユーザーはグループ・メンバーシップによる影響は受けません。コンテンツに対する権限は、引き続き ACL によって制限され、サイトとロールによって機能します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 28: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 2 章 概要

カスタム・アプリケーション28

カスタム・アプリケーションWEM で開発されるカスタム・アプリケーションは、通常、コンテンツ管理プラットフォームに対して疎結合された形で実装されます。カスタム・アプリケーションは、WEM フレームワークで有効化された REST API Web サービスと SSOメカニズムを利用するため、一般的にプラットフォームのアプリケーション・サーバー以外のアプリケーション・サーバーにデプロイされます。そのため、開発者はプラットフォームのデプロイメント・インフラストラクチャから完全に切り離してカスタム・アプリケーションを作成できます。ほとんどのカスタム・アプリケーションはリモートでデプロイされます ( 図 5)。

図 5: リモートでのアプリケーションのデプロイメント

カスタム・アプリケーションをコンテンツ管理用アプリケーションまたは配信用アプリケーションとして実装することができます。一般的に、コンテンツ管理側ではパフォーマンス・チューニングの手間がそれほどかからないため、コンテンツ管理側から着手することをお薦めします。

WEM フレームワークには軽量のサンプル・アプリケーションが付属しています。このサンプル・アプリケーションを、独自のアプリケーションを開発するためのモデルとして起動し分析することができます。「Articles」では、コンテンツ管理アプリケーションについて説明しています。第 3 章では、「Articles」の起動手順について説明しています。仕様については、第 4 章を参照してください。ソース・コードは WebCenter Sites の Misc/Samplesフォルダにあります。その他の参考情報については、REST API リソースおよび Bean のリファレンスを参照してください。SSO サンプル・アプリケーションはライブ・サイトでの認証用として提供されています。また、「Recommendations」アプリケーションでは、REST リソースの作成方法について説明しています。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 29: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

29

第 3 章

Articles」サンプル・アプリケーション

• 概要

• 「Articles」サンプル・アプリケーションの起動

• 「Articles」アプリケーションのテスト

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 30: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

概要30

概要「Articles」は、詳細に文書化されたソース・コードと自己インストール・プロセスを備えた、サンプルのコンテンツ管理アプリケーションです。「Articles」を使用することにより、アプリケーション開発で も重要な知識を素早く習得することができます。名前からわかるように、「Articles」では記事アセットを管理します。アプリケーションのホーム・ページは次のようになります。

「Articles」のホーム・ページには、前述の図で示した WEM のカスタム・インタフェースから直接編集可能な 2 つの記事が表示されます。このアプリケーションでは、WebCenter Sites REST API を使用して、Java コードから検索問合せを実行し、JavaScript コードからアセット変更問合せを実行する方法を示します。

「Articles」アプリケーションと REST サービスは、別々のアプリケーション・サーバーで実行させることができます。JavaScript のクロスドメイン制限により、「Articles」アプリケーションから REST サービスに対して AJAX を直接コールできません。単純な ProxyController が導入されたのはこのためです。このコントローラにより、コールが JavaScript から WEM REST Web サービスにリダイレクトされます。このコントローラ実装はカスタム実装で再利用できます。

「Articles」アプリケーションは Spring MVC フレームワークに基づいています。「Articles」には、fwadminという名前で xceladminというパスワードを持つ事前定義済管理ユーザーが含まれます。このユーザーは RestAdminという RESTグループに割り当てられています。アプリケーションの自己インストーラには、

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 31: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」サンプル・アプリケーションの起動31

「Articles」の機能を登録し、アセット・モデルとサンプルの記事をインストールするための仕様が含まれます。このアプリケーションでは内部的に構成されたサイトやロールで保護された機能は使用せず、単一の iframe ビューを使用します。その他の仕様については、第 4 章「アプリケーションの開発」を参照してください。

「Articles」サンプル・アプリケーションの起動この項では、まず「Articles」アプリケーションのビルドとデプロイを行い、続いてインストーラを実行します。

「Articles」アプリケーションのビルドおよびデプロイ

1. サンプルの「Articles」アプリケーションの割当て先となるサイトを選択または作成します。デフォルト・サイトは FirstSite II(WebCenter Sites のサンプルの CM サイト ) です。FirstSite II はシステムにインストールされていない場合があります。

サイトを選択または作成するには、次の URL にアクセスして WEM Adminにログインします。 http://<server>:<port>/<cs_application_context>/login このとき、一般管理者の資格証明 ( デフォルト値は fwadmin /xceladmin)を使用します。

2. 次の URL から SUN JDK(1.5 以降 ) をダウンロードして、インストールします。

http://java.sun.com/

3. 新の Apache Ant を http://ant.apache.org/ からダウンロードして、Ant の binディレクトリをシステムの PATHに置きます。

4. servlet-api.jarを「Articles」アプリケーションの libフォルダにコピーします。この jarファイルはアプリケーション・サーバーのホーム・ディレクトリから取得できます ( たとえば、Tomcat の servlet-api.jarは home libディレクトリにあります )。

5. applicationContext.xmlファイル(src¥articles¥src¥main¥webapp¥WEB-INF¥) で次のパラメータを設定します。

- casUrl: CAS アプリケーションの URL を指定します。http://<server>:<port>/<context_path>

- csSiteName: 手順 1 で選択したサイトの名前を指定します。

注意

手順 5 では、ここで選択したサイトを指定します。これにより、インストーラを実行した際に、指定したサイトでアプリケーションのアセット・モデルとアセットが有効になります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 32: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」サンプル・アプリケーションの起動32

- csUrl: WebCenter Sites プラットフォームが実行されている URL を指定します。 http://<server>:<port>/<context>

- csUserName: デフォルト値は fwadminです。これはアプリケーションの事前定義済ユーザーで、RestAdminグループにメンバーシップを持つ一般管理者です。このグループの REST サービスへのアクセス権は制限されていません。別のユーザーを指定する場合は、fwadminと同等のユーザーを指定する必要があります。一般管理者の作成手順は、『Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク管理者ガイド』を参照してください。

- csPassword: 事前定義済ユーザーのパスワードを指定します。

- articlesUrl: サンプル・アプリケーションにアクセスする際の URL を指定します。

6. デフォルトのターゲットを指定して Ant ビルドを実行します ( コマンドラインで ant と入力します )。

7. 生成された target/articles-1.0.warをアプリケーション・サーバーにデプロイします。

デプロイ時に、次のコンテンツがソースからターゲットにコピーされます。libフォルダのコンテンツが /WEB-INF/libにコピーされます。resourcesフォルダのコンテンツが /WEB-INF/classes/にコピーされます。ソース・アプリケーションの構造の詳細は、第 4 章「アプリケーションの開発」を参照してください。

「Articles」サンプル・アプリケーションの登録

「Articles」アプリケーションには自己インストーラが用意されており、install.appページにログインすると実行されます。インストーラによってサンプル・アプリケーション ( ビューを含む ) が登録され、そのデータ・モデルとアセットが WebCenter Sites データベースに作成されます。

「Articles」インストーラの実行手順

1. 次のように install.appページに移動します。

http://<hostname>:<portnumber>/<context_path>/install.app

例 : http://localhost:9080/articles-1.0/install.app

注意

登録アセット・タイプ FW_Viewおよび FW_Applicationの仕様は、Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST API Bean リファレンス ( および付録 A) を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 33: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」サンプル・アプリケーションの起動33

2. 任意の資格証明を使用してログインします (32 ページで、csUserNameおよび csPasswordを使用して指定した、アプリケーションの事前定義済ユーザーにはアプリケーションに対する権限が付与されています。 サンプル・アプリケーションではロールを使用しないため、認可チェックは実行されません。)

3. 自己インストール・プロセスによって InstallController.javaが起動されます。起動後、まずアプリケーション ( アプリケーション Bean のビューを含む ) が登録され、続いてサンプルのアセット・タイプがデータベースに書き込まれます。

a. InstallController.javaが、次のように「Articles」アプリケーションを WEM フレームワークに登録します。

- InstallController.javaが Articlesというアプリケーション・アセット ( アセット・タイプ FW_Application) を WebCenter Sitesデータベースに作成します。

iconurl属性は、アプリケーションを表すアイコンが配置される URLを示します。

layouturl属性は、(LayoutController.javaで実装される )layout.appページの URL を示します。layout.appページにはアプリケーションのレイアウトを定義します。

layouttype属性はデフォルト値 layoutrendererのみを取ります。layoutrenderer値を使用すると、アプリケーションに関連するビューが UI コンテナでレンダリングされる際に、layouturlで指定されている layout.appページが使用されます。

- InstallController.javaが ArticlesViewというビュー・アセット ( アセット・タイプは FW_View) を WebCenter Sites データベースに作成します。ビュー・アセットとアプリケーション・アセットとの関連付けは、FW_Applicationアセット・タイプの views属性によって行われます。

b. InstallController.javaが、次のようにアプリケーションのアセット・モデルとサンプル・アセットをインストールします。

- アプリケーションの FW_Articleアセット・タイプを WebCenter Sites データベースに作成します。(FW_ArticleはInstallController.javaで定義されているベーシック・アセット・タイプです。)

- applicationContext.xmlの csSiteNameパラメータで指定されているサイト (31 ページの手順 5) で FW_Articleアセット・タイプを有効にします。

- 記事アセットの 2 つのサンプルを FW_Articleアセット・タイプ表に書き込みます。( 記事のテキストとイメージは /sample app/articles/src/main/resources/installに格納されます )

c. InstallController.javaが、アセット・タイプ FW_Articleの検索をサポートする索引をアセット・タイプに基づいて作成します。( コントローラが索引構成データを指定します。)

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 34: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」アプリケーションのテスト34

4. インストール・プロセスが正常に終了すると、InstallController.javaによって (http://<server>:<port>/articles/install.appに ) 次のページが表示されます。Home は home.appです。

「Articles」アプリケーションのテスト1. 次のように home.appページに移動します。

http://<hostname>:<portnumber>/<context_path>/home.app

例 : http://localhost:8080/articles-1.0/home.app

2. 任意の資格証明を使用してログインします (32 ページで、csUserNameおよび csPasswordを使用して指定した、アプリケーションの事前定義済ユーザーにはアプリケーションに対する権限が付与されています。 サンプル・アプリケーションではロールを使用しないため、認可チェックは実行されません。)

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 35: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」アプリケーションのテスト35

次のように、アプリケーションのホーム・ページが WEM に表示されます。

3. このアプリケーションを使用して実験を行う場合 ( たとえば、別のサイトに割り当てて、ユーザーを追加する場合 ) は、WEM Admin を使用します。詳細は、『Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク管理者ガイド』を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 36: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 3 章 「Articles」サンプル・アプリケーション

「Articles」アプリケーションのテスト36

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 37: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

37

第 4 章

アプリケーションの開発

• 概要

• アプリケーションの構造

• REST コールの実行

• バイナリ・データを処理する URL の作成

• コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス

• 登録コード

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 38: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

概要38

概要この章の全体を通して「Articles」サンプル・アプリケーションを使用し、RESTコールを実行するアプリケーションの基本アーキテクチャについて説明します。

アプリケーションの構造「Articles」サンプル・アプリケーションのソース構造を図 6 に示します。デプロイ時に、次のディレクトリがソースからターゲットにコピーされます。libディレクトリのコンテンツが /WEB-INF/lib/にコピーされます。resourcesディレクトリのコンテンツが /WEB-INF/classes/にコピーされます。

図 6: 「Articles」サンプル・アプリケーションのソース構造

ソース・ファイル

インストーラのリソース

ビュー

スクリプト スタイル

TLD

ホーム・ページ ・ファイル

ログ出力ファイル

構成ファイル

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 39: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

アプリケーションの構造39

「Articles」は Spring MVC で開発された Java Web アプリケーションです。次のページが提供されます。

• /install.appは「Articles」のインストール・ページです。また、アプリケーションが正常にインストールされた場合に確認メッセージが表示されます。

• /home.app は「Articles」アプリケーションのホーム・ページです (30 ページ )。

構成ファイル • applicationContext.xml(/WEB-INF/) には SSO 構成およびアプリケーショ

ン固有の構成 ( 事前定義済ユーザーや、データ・モデルおよびアセットが有効化されるサイトなど ) が保持されます。

• spring-servlet.xml(/WEB-INF/) は、デフォルトの Spring 構成ファイルです。このファイルは Spring 構成を格納し、次のコントローラを参照します(「ソース・ファイル」を参照 )。- HomeController

- InstallController

- LayoutController

- ProxyController

• log4j.properties(/resources/) はロギング構成ファイルです。アプリケーションのデプロイ時に、/resources/から /WEB-INF/classes/にコピーされます。

ソース・ファイル : /sample app/articles/src/main/java/

/sample/フォルダには、次に示すソース・ファイルが含まれます。

• Configuration.javaは (Spring フレームワークによって )applicationContext.xmlファイルから移入されます (「構成ファイル」を参照 )。

• HomeController.javaは、単一のホーム・ページをレンダリングするホーム・ページ・コントローラです。このコントローラは、REST API を使用して WebCenter Sites プラットフォームからサンプル記事のリストを読み込み、読み込んだ記事をホーム・ページに表示します。

サンプル記事は /sample app/articles/src/main/resources/installに含まれるイメージとテキストで構成されます。また、サンプル記事はInstallController.javaによって WebCenter Sites データベースにインストールされます。

• InstallController.javaは「Articles」アプリケーションを登録し、アプリケーションのアセット・モデルとサンプル・アセットをデータベースに書き込みます。

• LayoutController.javaは WEM UI フレームワークで使用されるアプリケーションのレイアウト・ページ (layout.app) を表示します。LayoutController.javaはアプリケーションの登録時にも使用されます。

• ProxyController.javaは AJAX リクエストを WebCenter Sites の RESTサーブレットに委任します。

• TldUtil.javaユーティリティ・クラスには TLD 機能の実装が含まれます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 40: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

アプリケーションの構造40

インストーラのリソース : /sample app/articles/src/main/resources/install

/install/フォルダには次のリソースが含まれます。これらのリソースはホーム・ページを構成する際に InstallControllerで使用されます (41 ページの図8)。• strategies.png

• strategies.txt

• tips.png

• tips.txt

ホーム・ページ・ファイル : /sample app/articles/src/main/webapp/images

/images/フォルダには次のファイルが含まれます。

• articles.pngアイコン ( 図 7)。アプリケーション・バーで「Articles」アプリケーションを表します。

• 図 8 のファイル :

- edit.pngは「編集」機能用のアイコンです。

- save.pngは「保存」機能用のアイコンです。

- cancel.pngは「取消」機能用のアイコンです。

スクリプト : /sample app/articles/src/main/webapp/scripts

/scripts/フォルダには、文字列と JSON オブジェクトとの変換に使用されるjson2.jsユーティリティ・スクリプトが含まれます。

スタイル : /sample app/articles/src/main/webapp/styles

/styles/フォルダには、この Web アプリケーションで使用される CSS スタイルを指定するための main.cssが含まれます。

ビュー : /sample app/articles/src/main/WEB-INF/jsp

/jsp/フォルダには次のファイルが含まれます。

• home.jsp。「Articles」アプリケーションのホーム・ページ・ビューをレンダリングする際に使用されます ( 図 8)。

• layout.jsp。アプリケーションのレイアウトを定義します。

WEB-INF: /sample app/articles/src/main/WEB-INF

/WEB-INF/フォルダには次のファイルが含まれます。

• articles.tld。TLD 宣言ファイルです。

• spring-servlet.xml。Spring 構成ファイルです。

• web.xml。Web アプリケーションのデプロイメント・ディスクリプタです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 41: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

アプリケーションの構造41

article

WEM A

st

cel.png

e.png

st

t.png

タフェース:

図 7: 「Articles」のアイコン (articles.png)

図 8: 「Articles」のホーム・ページ

s.png

dmin

現在のサイト

rategies.png

tip.png

tip.txt

can

sav

rategies.txt

home.jsp

edi

イン機能

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 42: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

REST コールの実行42

REST コールの実行 WebCenter Sites の REST リソースは、XML および JSON という 2 種類の入出力フォーマットをサポートしています。目的の戻りフォーマットを取得するには、HTTP ヘッダーで MIME タイプ application/xmlまたは application/jsonを指定する必要があります。

たとえば、入力フォーマットが XML になるように指定する場合は、Content-Typeを application/xmlに設定します。出力フォーマットを指定する場合は、Accept( 予想されるフォーマット ) を application/xmlに設定します。これ以外のフォーマットを指定した場合、そのフォーマットは無視されます。Content-Typeまたは Acceptに指定がない場合のデフォルトは XMLです ( サンプル・コードは、44 ページの行 64 および 66 を参照してください )。

REST コールの詳細は、この項の次のトピックを参照してください。

• JavaScript からの REST コールの実行

• Java からの REST コールの実行

JavaScript からの REST コールの実行

次のコード (home.jsp) は、アセットの REST サービスに対して AJAX コールを実行して、アセット・データを保存します。実際には、プロキシ・コントローラに対してリクエストが実行され、プロキシ・コントローラから宛先の REST サービスにリクエストがリダイレクトされます。

1 // Form the URL pointing to the asset service 2 // to the proxy controller, which will redirect this request to

the CS REST servlet.3 var idarr = assetId.split(":");4 var assetUrl = "${pageContext.request.contextPath}/REST/sites/

${config.csSiteName}/types/" + idarr[0] + "/assets/" + idarr[1];

56 // For the data object to be posted.7 var data = 8 {9 "attribute" : 10 [11 {12 "name" : "source",13 "data" : 14 {

注意

ここでは JSON stringify ライブラリ (http://json.org/js.html) を使用して、JavaScript オブジェクトを文字列としてシリアライズします。文字列のかわりに JSON オブジェクトを記述するほうがはるかに使いやすくなります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 43: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

REST コールの実行43

15 "stringValue" : document.getElementById("source_e_" + assetId).value

16 }17 },18 {19 "name" : "cat",20 "data" : 21 {22 "stringValue" : document.getElementById("cat_e_" +

assetId).value23 }24 }25 ],26 "name" : document.getElementById("name_e_" + assetId).value,27 "description" : document.getElementById("desc_e_" +

assetId).value,28 // TODO: this should be removed.29 "publist" : "${config.csSiteName}"30 };31 // Convert JSON data to string.32 var strdata = JSON.stringify(data); 3334 // Perform AJAX request.35 var req = getXmlHttpObject(); 36 req.onreadystatechange = function ()37 {38 if (req.readyState == 4)39 {40 if (req.status == 200)41 {42 // On successful result43 // update the view controls with new values and switch the

mode to 'view'.44 for (c in controls)45 {46 document.getElementById(controls[c] + "_v_" +

assetId).innerHTML = 47 document.getElementById(controls[c] + "_e_" +

assetId).value;48 } 49 switchMode(assetId, false);50 }51 else52 {53 // Error happened or the session timed out,54 // reload the current page to re-acquire the session. 55 alert("Failed to call " + assetUrl + ", " + req.status + " "

+ req.statusText);56 window.location.reload( false );57 }58 }59 };

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 44: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

REST コールの実行44

60 // We put Content-Type and Accept headers61 // to tell CS REST API which format we are posting62 // and which one we are expecting to get.63 req.open("POST", assetUrl, true);64 req.setRequestHeader("Content-Type", "application/

json;charset=utf-8");65 req.setRequestHeader("Content-Length", strdata.length);66 req.setRequestHeader("Accept", "application/json"); 67 req.send(strdata);68 }

Java からの REST コールの実行

次のコード (HomeController.java) はアセット検索サービスをコールして、FW_Articleタイプのすべてのアセットをリストします。このコードでは、Jersey Client ライブラリを使用して、WEM フレームワークが提供する rest-api-xxx.jarライブラリからオブジェクトを渡します。この方法を利用するとJava での入力が強化されます。

SSOAssertion.get().createToken()メソッドをコールして、トークンを Javaコードから取得する必要がある点に注意してください。JavaScript 側では WEMの SSO に対してすでに認証が行われているため、同様の処理を行う必要はありません。

// Use Jersey client to query CS assets.Client client = Client.create();String url = config.getRestUrl() + "/types/FW_Article/search";WebResource res = client.resource( url ); // Construct URL and add token (for authentication purposes)// and fields (specify which fields to retrieve back) parameters. res = res.queryParam("fields",

URLEncoder.encode("name,description,content,cat,source", "UTF-8"));

res = res.queryParam("ticket", SSO.getSSOSession().getTicket(res.getURI().toString(), config.getCsUsername(), config.getCsPassword()));

// Put Pragma: auth-redirect=false to avoid redirects to the CAS login page.

Builder bld = res.header("Pragma", "auth-redirect=false"); // Make a network call.AssetsBean assets = bld.get(AssetsBean.class);

注意

カスタム・ヘッダー Pragma: auth-redirect=falseは、CAS SSO フィルタによって CAS サインイン・ページにリダイレクトされないよう指示していますが、チケットが指定されていない場合または指定されたチケットが無効の場合は 403 エラーが返ります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 45: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

バイナリ・データを処理する URL の作成45

バイナリ・データを処理する URL の作成「Articles」アプリケーションは WebCenter Sites の Blob サーバーを使用して

BLOB データを処理します。次のユーティリティ関数は、特定のアセットの特定の属性のバイナリ・データを指す URL を作成する場合に使用できます。blobUrlには Blob サーバー ( デフォルトは http://localhost:8080/cs/BlobServer) を指定します。

public String getBlobUrl(String assetType, String assetId, String attrName, String contentType)throws Exception

{String contentTypeEnc = URLEncoder.encode(contentType, "UTF-8");

return blobUrl + "?" +

"blobkey=id" + "&blobnocache=true" +"&blobcol=thumbnail" +"&blobwhere=" + assetId +"&blobtable=" + assetType +"&blobheader=" + contentTypeEnc +"&blobheadername1=content-type" +"&blobheadervalue1=" + contentTypeEnc;

}

バイナリ・データを取得する別の方法は、リソース /sites/{sitename}/types/{assettype}/assets/{id}を使用してアセットをロードすることです。ロードされたアセットには BLOB サーバーを指す URL が格納されます。

コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス

UI コンテナは、コンテナ内のすべてのアプリケーションに JavaScript コンテキスト・オブジェクト (WemContext) を提供します。コンテキスト・オブジェクトは、アプリケーションでログイン済ユーザーやサイトに関する詳細情報を WEMフレームワークから取得するために使用します ( 通常は、UI コンテナから現在のサイトの名前を取得します )。また、コンテキスト・オブジェクトは、アプリケーションでデータを共有する際に使用する各種ユーティリティ・メソッドも提供します。コンテキスト・オブジェクトは、WebCenter Sites と同一ドメインまたは異なるドメインで実行されているアプリケーションで使用できます。

注意

wemcontext.htmlファイルには公開されるメソッドがリストされています (48 ページにまとめられています )。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 46: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス46

同一ドメイン用の実装

WebCenter Sites ドメイン内にあるアプリケーションのコンテキスト・オブジェクトを初期化するには :

1. wemcontext.jsを含めます ( 次のサンプル・コードの行 1 では、wemcontext.jsは <cs webapp path>/wemresources/js/WemContext.jsにあります )。

2. WemContextオブジェクトのインスタンスを取得します ( 行 3)。

3. WemContextのメソッドを使用します ( 行 4 および 5)。

同一ドメイン用の実装のサンプル・コード

1 <script src='http://<csinstalldomain>/<contextpath>/wemresources/js/WemContext.js'></script>

2 <script type="text/javascript">3 var wemContext = WemContext.getInstance(); // Instantiate

Context Object4 var siteName = wemContext.getSiteName(); // Get Site Name5 var userName = wemContext.getUserName(); // Get UserName6 </script>

クロスドメイン用の実装

クロスドメイン・アプリケーションのコンテキスト・オブジェクトを初期化するには :

1. wemxdm.js、json2.jsおよび hash.htmlを (Misc/Samplesフォルダから )アプリケーションにコピーします。

2. クロスドメイン・コールを実行できるように、sample.htmlファイルを開いて、次のように変更します。

a. wemxdm.js、json.jsおよび hash.htmlのパスを、アプリケーション内でのそれぞれのパスに変更します ( 後述のコードの行 1 – 4 を参照 )。

b. wemcontext.htmlのパスを、WebCenter Sites 内でのこのファイルの場所に変更します (wemcontext.htmlは /wemresources/wemcontext.htmlにあります。WebCenter Sites のホスト名とコンテキスト・パスを使用します。行 14 を参照してください。)

c. フレームワークで使用するメソッドをインタフェース宣言で指定します( 行 15)。

d. このメソッドをローカル・スコープに実装し、リモート・メソッドを起動します ( 行 30)。

クロスドメイン・コール用の sample.html 1 <script type="text/javascript" src="../js/wemxdm.js">

</script> 2 <script type="text/javascript">3 // Request the use of the JSON object 4 WemXDM.ImportJSON("../js/json2.js");5 var remote;

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 47: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス47

67 window.onload = function() {8 // When the window is finished loading start setting up

the interface 9 remote = WemXDM.Interface(/** The channel configuration */10 {11 // Register the url to hash.html.12 local: "../hash.html",13 // Register the url to the remote interface 14 remote: "http://localhost:8080/cs/wemresources/

wemcontext.html"15 }, /** The interface configuration */ 16 {17 remote: {18 getSiteName :{},19 ...2021 }22 },/**The onReady handler*/ function(){23 // This function will be loaded as soon as the page is

loaded24 populateAttributes();25 });26 }27 </script> 2829 <script type="text/javascript"> 30 /** Define local methods for accessing remote methods */31 function getSiteName(){32 remote.getSiteName(function(result){33 alert("result = " + result);34 });35 }36 ... 37 </script>

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 48: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

コンテキスト・オブジェクト : WEM フレームワークからのパラメータへのアクセス48

コンテキスト・オブジェクトで使用可能なメソッド

戻り型 メソッド名および説明

Object getAttribute(attributename)

指定された属性名の属性値を返します。

Object getAttributeNames()

すべての属性名を返します。

Object getCookie(name)

指定された名前の Cookie 値を返します。通常のブラウザのCookie の制限がすべて適用されます。

Object getCookies()

すべての Cookie を返します。

Object getLocale()

ロケールを返します。

Object getSiteId()

サイト ID を返します。

Object getSiteName()

サイト名を返します。

Object getUser()

ユーザー・オブジェクトを返します。

Object getUserName()

ユーザー名を返します。

void removeCookie(name, properties)

Cookie を削除します。

void setAttribute(attributename, attributevalue)

属性を設定します。他のアプリケーションからこれらの属性にアクセスできます。

void setCookie(name,value,expiredays,properties)

Cookie を設定します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 49: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

登録コード49

登録コードアプリケーションは登録することによって WEM フレームワークで公開されます (22 ページを参照 )。アプリケーションを登録すると、FW_Applicationタイプのアセットと、アプリケーションに関連付けられた各ビューに対してFW_Viewタイプのアセットが作成されます。アセット・タイプは AdminSite で有効になります。アセット・タイプの属性の定義は、Oracle WebCenter Sites: Webエクスペリエンス管理フレームワーク REST API Bean リファレンスを参照してください。プログラムによる登録をお薦めします。( 手動登録の例は、付録 A を参照してください。)

この項には次のトピックが含まれます。

• iframe ビューを使用するアプリケーションの登録

• JavaScript ビューおよび HTML ビューを使用するアプリケーションの登録

iframe ビューを使用するアプリケーションの登録

この項では、「Articles」サンプル・アプリケーションのコードを使用して登録プロセスについて説明します。「Articles」には iframe タイプの単一のビューが含まれます。JavaScript および HTML のビューにも同じ手順が適用されます。

アプリケーションを登録するには :

1. アプリケーションを表すアイコンを作成または取得します。( アプリケーション・バーにアイコンが表示されます。)

(「Articles」サンプル・アプリケーションは、次の場所にあるarticles.pngイメージ・ファイルを使用します。/sample app/articles/src/main/webapp/images/)

2. アプリケーションのレイアウト ( つまり各ビュー ) を HTML で示すファイルを作成し、ビューでレンダリングされるコンテンツを保持するためのプレースホルダ・エレメントを作成します。50 ページの図 9 にアプリケーションとビューの関係を示します。

たとえば、「Articles」サンプル・アプリケーションの layout.jspには次の行が記述されています。

<div id="articles" style="float:left;height:100%;width:100%" class="wemholder"></div>

ビューのコンテンツは、アプリケーションが表示される際にプレースホルダ・エレメント内にレンダリングされます (layout.app がアプリケーションのレイアウトをレンダリングし、home.app がビューをレンダリングします )。

注意

レイアウト・ファイルの作成時に、プレースホルダ・エレメントに一意の idを指定します。 ビュー・オブジェクトをコーディングする際には、同じ idを parentnode属性に指定します。プレースホルダ・エレメントに class="wemholder"を使用します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 50: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

登録コード50

図 9: アプリケーションとビュー

アプリケーションとビューは、多対多の関係にあります ( 図 9)。1 つのアプリケーションで複数のビューを使用でき、各ビューは複数のアプリケーションで使用できます。登録済のビューは ( ビューのアセット ID によって ) 共有可能です。アセット ID が省略されている場合は、そのアプリケーションのコンテキスト内にビューが作成されます。ベーシックの場合、1 つのアプリケーションに関連付けられるビューは 1 つのみです。

3. PUT wem/applications/{applicationid} REST サービスを起動して、アプリケーション Bean を指定します。Bean にビュー・アセットとアプリケーション・アセットを移入します。

iframe ビューの場合、「Articles」サンプル・アプリケーションのコード(InstallController.java)を使用します (コメント行 // Create a new view object および// Create a new application objectを見つけます )。layouturl属性を設定して、アプリケーションのレイアウト・ページのURL を指定します。

「Articles」アプリケーションで、次のようにlayout.app(LayoutController.javaで実装 ) の URL を layouturl属性に指定します。

app.setLayouturl(config.getArticlesUrl() + "/layout.app");

登録プロセスの結果をテストするには、WEM Admin インタフェースに一般管理者としてログインし、メニュー・バーで「アプリケーション」を選択します。このページにアプリケーションが一覧表示されるはずです。

JavaScript ビューおよび HTML ビューを使用するアプリケーションの登録

HTML ビューおよび JavaScript ビューを使用するアプリケーションの場合、前の項の手順に従いますが、次に示すサンプル・コードと属性を使用します。

• JavaScript ビュー

• HTML ビュー

アプリケーション アプリケーション 2

ビュー A ビュー B

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 51: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

登録コード51

JavaScript ビュー

サンプル・コード : window.onload = function () {

if (GBrowserIsCompatible()) {

var map = new GMap2(document.getElementById("map_canvas"));

map.setCenter(new GLatLng(37.4419, -122.1419), 13);

map.setUIToDefault();

}

}

• ソース URL からの JavaScript ビューのレンダリング

次の属性を設定します。

- name: ビューの名前

- parentnode:(49 ページの手順 2 で作成した ) プレースホルダ・エレメントの ID

- viewtype: fw.wem.framework.ScriptRenderer。プレースホルダ・エレメントに JavaScript をレンダリングします。

- sourceurl: .jsファイルのパス。ビューのコンテンツを提供します。例: http://myhost.com:8080/js/drawTree.js

• ソース・ビューからの JavaScript ビューのレンダリング

次の属性を設定します。

- name: ビューの名前

- parentnode:(49 ページの手順 2 で作成した ) プレースホルダ・エレメントの ID

- viewtype: fw.wem.framework.ScriptRenderer。プレースホルダ・エレメントに JavaScript をレンダリングします。

- javascriptcontent: JavaScript コードです ( 前述のサンプル。<script>タグはコードに含めないでください。)

注意

ビューで指定した JavaScript は、アプリケーションがレンダリングされるときにレンダリング ( 実行 ) されます。JavaScript が他のビューと競合しないようにしてください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 52: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 4 章 アプリケーションの開発

登録コード52

HTML ビュー

サンプル・コード : <object width="480" height="385">

<param name="movie" value="http://www.localhost:8080/jspx/flash_slider_main.swf"></param>

<param name="allowFullScreen" value="true"></param>

<embed src=" http://www.localhost:8080/jspx/flash_slider_main.swf"

type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"

width="480" height="385">

</embed>

</object>

• ソース URL からの HTML ビューのレンダリング

次の属性を設定します。

- name: ビューの名前

- parentnode:(49 ページの手順 2 で作成した ) プレースホルダ・エレメントの ID

- viewtype:fw.wem.framework.IncludeRenderer。プレースホルダ・エレメントに JavaScript をレンダリングします。

- sourceurl: ビューのコンテンツを提供する HTML ファイルのパスです。例 : http://myhost.com:8080/js/drawTree.jsp

• ソースコードからの HTML ビューのレンダリング

次の属性を設定します。

- view: ビューの名前

- parentnode:(49 ページの手順 2 で作成した ) プレースホルダ・エレメントの ID

- viewtype:fw.wem.framework.IncludeRenderer。プレースホルダ・エレメントに JavaScript をレンダリングします。

- includecontent: HTML コンテンツです ( 前述のサンプル。<html>タグまたは <body>タグはコードに含めないでください。)

注意

ビューで指定した HTML は、アプリケーションがレンダリングされるときにレンダリング ( 実行 ) されます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 53: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

53

第 5 章

カスタム REST リソースの開発

• 「Recommendations」サンプル・アプリケーション

• REST リソースの作成

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 54: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 5 章 カスタム REST リソースの開発

「Recommendations」サンプル・アプリケーション54

「Recommendations」サンプル・アプリケーション• 概要

• アプリケーションのビルドおよびデプロイ

• アプリケーションのテスト

概要

「Recommendations」サンプル・アプリケーションでは、WebCenter Sites および Satellite Server の REST リソースを作成する方法について説明します。このアプリケーションは、新しい REST リソース sample/recommendations/<id>をGETおよび POST操作によって登録します。これにより、静的リスト・リコメンデーションの取得および変更が可能になります。また、このアプリケーションでは、Satellite Server のキャッシュ・システムの使用方法についても説明します。

アプリケーションのビルドおよびデプロイ

1. 「Recommendations」サンプル・アプリケーションは、WebCenter Sites インストール・ディレクトリ内の Misc/Samplesフォルダにあります。recommendationsに移動し、build.propertiesファイルを編集します。cs.webapp.dirおよび ss.webapp.dirプロパティに適切なパスを指定します。

2. recommendationsフォルダで Apache antを実行します。これにより、サンプル・アプリケーションのビルドとデプロイが行われます。

3. catalogmoverアプリケーションを起動します。「サーバー」→「接続」メニューを使用して WebCenter Sites に接続します。「カタログ」→カタログの自動インポートに移動し、src¥main¥schema¥elements.zipファイルを選択します。ACL のリストを指定する場合は、xceladmin、xceleditorを追加します。

4. WebCenter Sites Web アプリケーション・フォルダに移動します。WEB-INF/classes/custom/RestResource.xmlファイルを編集します。recommendationService、recommendationConfigおよびresourceConfigsの各 Bean を非コメント化します。

5. Satellite Server アプリケーション・フォルダに移動します。WEB-INF/classes/custom/RestResource.xmlファイルを編集します。recommendationService、recommendationConfigおよびresourceConfigsの各 Bean を非コメント化します。

6. WebCenter Sites および Satellite Server を再起動します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 55: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 5 章 カスタム REST リソースの開発

REST リソースの作成55

アプリケーションのテストURL http://<hostname>:<port>/<contextpath>/REST/sample/recommendations/<recommendationid>に対する既存の静的リスト・リコメンデーション ID を使用します ( または新しいリコメンデーションを作成します )。WebCenter Sites および Satellite Server の各インストールで同じ URL を使用します。たとえば、http://localhost:8080/cs/REST/sample/recommendations/1266874492697を使用します。WebCenter Sites およびSatellite Server の XML レスポンスを確認します。

REST リソースの作成• アプリケーションの構造

• カスタム REST リソースの実装手順

アプリケーションの構造 「Recommendations」サンプル・アプリケーションは、独自の REST リソースを作成する過程を通じて手順を説明することを目的に作成されています。

図 10: 「Recommendations」サンプル・アプリケーション

• スキーマ・ファイル : src/main/schema

- elements.zipには、Satellite Server のキャッシュ・プロセスで使用されるサンプル・エレメントが含まれます。

- jaxb.binding は JAXB のデフォルト・バインディングのカスタマイズです。Bean の生成プロセスで使用されます。

- recommendation.xsdは RecommendationServiceBean の XML スキーマです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 56: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 5 章 カスタム REST リソースの開発

REST リソースの作成56

• Java ソース・ファイル : src/main/java/ ... /sample

- RecommendationResourceには、REST リソースの実装が含まれます。これは WebCenter Sites および Satellite Server の両方で使用されます。

- RecommendationServiceは RecommendationResourceクラスの機能を提供するインタフェースです。この実装は、リソースを (WebCenter Sites 上で ) ローカルにホストするか、(Satellite Server 上に ) リモートでホストするかによって異なります。

- beans/*クラスは Java xjcコンパイラによって生成されます。これらのクラスはアプリケーションに事前にパッケージされています。Bean を再生成する場合 (recommendation.xsdファイルを変更する場合 ) は、build.xmlの ant タスク「generate」を実行します。

- LocalRecommendationServiceは RecommendationServiceインタフェースのローカル (WebCenter Sites) 実装です。

- RemoteRecommendationServiceは RecommendationServiceインタフェースのリモート (Satellite Server) 実装です。

カスタム REST リソースの実装手順

1. REST サービスを記述した XSD ファイル (recommendations.xsdファイル )を作成します。

2. JAXB xjcユーティリティ (「generate」ant タスク ) を使用して Bean を生成します。

3. REST インタフェースを作成します。WebCenter Sites と Satellite Server とでは実装が異なります。

4. クラス com.fatwire.rest.BaseLocalServiceおよびcom.fatwire.rest.BaseRemoteServiceを継承して REST インタフェースを実装します。

5. 次の手順は Satellite Server のキャッシュを使用する場合のオプションです。

WebCenter Sites 側でエレメントを作成します。このエレメントはローカル実装と同じアセットをロードします。

6. com.fatwire.rest.BaseResourceクラスを継承して REST リソース・クラスを作成します。

7. WebCenter Sites 側および Satellite Server 側の両方で、REST サービスと構成を WEB-INF/classes/custom/RestResources.xmlファイルに登録します。

custom/RestResources.xmlファイルには次のコンポーネントが含まれます。

- resourceConfigs id を含む Bean は必須 Bean です。resourceConfigsプロパティには、使用されるすべての REST 構成への参照が含まれます。

注意

カスタム resourceConfigsが非コメント化されている場合は、embeddedConfig Bean を参照する必要があります。そうしないと、WEM インストールで提供されるデフォルトの REST リソースが登録されません。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 57: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 5 章 カスタム REST リソースの開発

REST リソースの作成57

- リソースの構成はタイプ com.fatwire.rest.ResourceConfigにする必要があります。通常は、このクラスの 1 つのインスタンスのみが登録されます ( 構成ごとに複数のサービスを登録できます )。

- resourceClassesプロパティには使用されるすべてのリソースのリストが含まれます。

- beanPackageには xjcユーティリティの実行時に出力 Bean に指定したJava パッケージ名が含まれます。

- schemaLocationは、REST サービスで生成されるすべての出力 XMLファイルに配置される xsi:schemaLocation属性です。

注意

複数のサービスの場合は、REST サービスの非結合グループごとに新しい構成を作成します。通常は個別の XSD ファイルで指定します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 58: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

58

第 6 章

本番サイトでのシングル・サインオン

• SSO サンプル・アプリケーション

• SSO サンプル・アプリケーションのデプロイ

• アプリケーションの構造

• シングル・サインオンの実装

• シングル・サインアウトの実装

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 59: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 6 章 本番サイトでのシングル・サインオン

SSO サンプル・アプリケーション59

シングアウト

SSO サンプル・アプリケーションSSO サンプル・アプリケーションは配信ユースケースで駆動されます。本番サイトのアプリケーションを保護する場合、初期状態の CAS は使用できないため、ここではライブ・サイトでアプリケーションのシングル・サインオン / サインアウトを有効にする際の簡単な例を示します。

SSO サンプル・アプリケーションのデプロイ 1. wem-sso-api-cas-sample.warファイルを (/sso-sampleフォルダなどに )

解凍します。アプリケーションは WebCenter Sites の Misc/Samples/WEM Samples/ WEM Sample applications/ディレクトリにあります。

2. WEB-INFフォルダにある applicationContext.xmlファイルを変更して、次のプロパティを設定します。

- casUrl: 次のように、CAS サーバーのベース・パスを指定します。

http://localhost:8080/cas

- casLoginPath: 次のように、SSO サンプル・アプリケーションでホストされるログイン・フォームのテンプレートを含めます。 /login?wemLoginTemplate=http%3A%2F%2Flocalhost%3A9080%2Fsso-

cas-sample%2Ftemplate.html

3. 変更した SSO サンプル・アプリケーションをアプリケーション・サーバーにデプロイします。

4. アプリケーションにアクセスします。

SSO サンプル・アプリケーションは次のページで構成されています。

• 保護されている領域 : WEM SSO フィルタで保護されているページです。このページにはシングル・サインアウト用の 2 つのリンクがあります ( 図 11)。

図 11: シングル・サインアウト用のリンクを含む保護付きページ

1 つ目のリンク ( リダイレクトありのシングル・サインアウト ) は、CAS 側でシングル・サインアウトを実行し、ユーザーをホーム・ページにリダイレクトする HTML リンクです。2 つ目のリンク ( リダイレクトなしのシングル・サインアウト ) も HTML リンクですが、CAS 側でシングル・サインアウトを実行しても、現在のページから遷移したり、リロードが発生したりすることはありません。

ル・サイン用のリンク

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 60: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 6 章 本番サイトでのシングル・サインオン

アプリケーションの構造60

• 公開領域 : 保護フィルタから除外されるページです。

• ログイン・フォームを含む公開領域 : このページは保護フィルタから除外されますが、ページ内にログイン・フォームがあります。ログイン・フォームではサインイン操作が実行されますが、現在のページから遷移したり、リロードが発生したりすることはありません。

図 12: 「サインイン」リンクを含む公開領域

アプリケーションの構造SSO サンプル・アプリケーションには、本番サイトでシングル・サインオン /サインアウト機能を使用してアプリケーションを保護するための基本コードが用意されています。次のコンポーネントを使用して SSO サンプル・アプリケーションにアクセスします。

• index.jsp: 開始ページです。このページには、保護されている領域、公開領域およびログイン・フォームを含む公開領域で説明した各ページ (59 ページの「SSO サンプル・アプリケーションのデプロイ」を参照 ) へのリンクがあります。

• template.html: CAS 用のカスタム・サインイン・フォームを指定する際に使用します。このファイルのパスは、applicationContext.xmlファイルのcasLoginPathにある wemLoginTemplateパラメータで参照します。

構成ファイル : /sso-sample/WEB-INFWEB-INFには次の構成ファイルが含まれます。

• applicationContext.xml: Spring Web アプリケーション構成ファイル。SSO サブシステムを構成します。

• web.xml: Web アプリケーションのデプロイメント・ディスクリプタです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 61: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 6 章 本番サイトでのシングル・サインオン

シングル・サインオンの実装61

保護付きファイル : /sso-sample/protected/jspこの領域のファイルは SSO フィルタで保護されています。デフォルトでは、このフォルダには次のファイルが含まれています。

• protected.jsp: SSO フィルタで保護されているページ。このページには、シングル・サインアウトを実行するための 2 つのリンクがあります。1 つ目のリンクをクリックすると、CAS サインアウト・ページに遷移し、サインアウトが完了するとアプリケーションのホーム・ページにリダイレクトされます。2 つ目のリンクをクリックすると、このページに iframe が埋め込まれ、signoutCallback.jspページにリダイレクトされる CAS サインアウト・ページがコールされます。また、protected.jspページには、現在のログイン済ユーザーを表す Assertionオブジェクトのすべての属性も表示されます。

• protected/jsp/protectedSection.jsp: 埋込み iframe の「サインイン」リンクがクリックされた場合に public.jspページから参照されるページです。このページは保護されているため、埋込み iframe にログイン画面が表示されます。

公開ファイル : /sso-sample/public/jspこの領域のファイルは SSO フィルタで保護されていません。デフォルトでは、/public/jsp/フォルダには次のサンプル・ファイルが含まれています。

• public.jsp: このページは CAS フィルタで保護されていません。

• publicWithAuth.jsp: このページには「サインイン」リンクが表示されます。リンクをクリックすると、publicWithAuth.jspに、protectedSection.jspページを指す iframe が埋め込まれます。このページは保護されているため、埋込み iframe にログイン画面が表示されます。

• signoutCallback.jsp: このページは、iframe を使用する場合にサインアウトが完了すると、protected.jspページからコールされます。

シングル・サインオンの実装Web サイトでシングル・サインオンを実装する場合、サインイン・フォームを実装することになります。サインイン・フォームは、次の 2 つのいずれかの方法でサイト訪問者に表示できます。

• 保護付きページに訪問者がアクセスしようとすると、サインイン・フォームが表示されます。これはデフォルトのサインイン実装です。このサインイン・フォームには、CAS に付属のデフォルト・サインイン・フォームまたはアプリケーションが提供するカスタム・フォームを指定できます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 62: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 6 章 本番サイトでのシングル・サインオン

シングル・サインアウトの実装62

• サインイン・フォームを公開ページに埋め込むと、ユーザーが現在のページから遷移することなくサインイン機能が実行されます。この動作を実装するには保護付きページを指す iframe を埋め込みます。そのページは保護されているので、訪問者にはサインイン・フォームが表示されます。

シングル・サインアウトの実装シングル・サインアウトを Web ページに実装する場合、次のいずれかの方法で実装できます。

• 次のメソッドを起動して、シングル・サインアウト URL を取得します。

com.fatwire.wem.sso.SSO.getSSOSession()オブジェクトのgetSignoutUrl()または getSignoutUrl(String callbackUrl)メソッド。

シングル・サインアウト後に、必要に応じて、訪問者が指定した URL にCAS からリダイレクトできます。これは callbackUrlパラメータで設定します。

• 現在のページから遷移させずにサインアウトを実行するには、iframe の埋込み手法を使用します。この手法では、ソースにシングル・サインアウト URLを含む iframe を埋め込む必要があります。iframe がロードされると、サインアウト URL がコールされます ( この方法は主に、ブラウザでのクロスドメインの制限を回避する場合に使用されます )。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 63: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 6 章 本番サイトでのシングル・サインオン

シングル・サインアウトの実装63

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 64: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

64

第 7 章

REST リソースの使用

• REST リソースの認証

• CAS の構成

• REST 認可

• REST を介したアセットの管理

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 65: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証65

REST リソースの認証WEM フレームワークでは、CAS(http://www.jasig.org/cas) 上に構築されたSSO メカニズムを認証の際に使用します。 このシステムの動作は、REST API をブラウザから使用するか、プログラムから使用するかによって異なります。

ブラウザから REST API にアクセスする場合、ユーザーは CAS ログオン・ページにリダイレクトされ、ログインに成功すると ticketパラメータが設定された状態で元の場所に戻ります。このパラメータはユーザーの ID を確立する際に検証されます。プログラムから REST API にアクセスする場合、開発者は ticketまたは multiticketパラメータのいずれかを指定する必要があります。

ticketおよび multiticketパラメータを取得するにはいずれも、Oracle SSO API を使用するか (Java でコールする場合 )、単に HTTP プロトコルを使用します ( 他の言語でコールする場合 )。ticketと multicketの違いは、ticket はREST リソースごとに取得され、1 回しか使用できないのに対し ( 名前からわかるように、列車や劇場のチケットが 1 回の乗車あるいは 1 回の鑑賞のみに有効であることを想像してみてください )、multiticket は任意のリソースに対して複数回使用できます。ticketおよび multiticketパラメータはいずれも回数に制限がありますが、一般的な使用パターンが異なります。ticket はコールごとに取得されるので有効期限を気にする必要がありません。一方、1 つの multiticket を再利用すると 終的に期限切れとなり、HTTP 403エラーが発生します。期限切れになった場合、アプリケーションでこのような動作を認識してそのmultiticket を再取得できる必要があります。ticketと multiticketのどちらを使用するかは、アプリケーション開発者が決定します。

Java コードからのチケットの取得

Oracle SSO API は認証プロバイダに依存しない方法で実装されています。ただし、ユーザーが独自の SSO 認証プロバイダを登録することはできません。新しい認証プロバイダのサポートを実装するには Oracle を使用する必要があります。プロバイダの切替えは、SSO 構成ファイルを変更するだけで済みます。

すべての SSO コールは SSO フロントエンド・クラスの SSO で生成されます。これは SSOSessionオブジェクトを取得するために使用されます。SSOSessionは、SSO 構成ごとに取得します。この構成は、Web アプリケーションの場合はSpring Web アプリケーション・ローダーを使用してロードされた単一の構成、スタンドアロン・アプリケーションの場合は構成ファイルからロードされた構成です。

Web アプリケーション SSO.getSession().getTicket(String service, String username, String

password)SSO.getSession().getMultiTicket(String username, String password)

スタンドアロン・アプリケーションSSO.getSession(String configName).getTicket(String service, String

username, String password)SSO.getSession(String configName).getMultiTicket(String username,

String password)

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 66: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証66

他のプログラミング言語からのチケットの取得 (HTTP を経由 )CAS REST API は、チケットまたはマルチチケットあるいはこの両方を取得するために使用します。チケットまたはマルチチケットを取得するには 2 つの HTTP POSTコールを実行する必要があります。チケットとマルチチケットとの違いは、マルチチケットの場合は serviceパラメータが「*」であるのに対し、ticketパラメータの場合は、実際にアクセスする REST リソースである点です。

次の例では、CAS サーバーに対して実行されるコールを示します。このコールでは、資格証明 fwadmin/xceladminを使用して http://localhost:8080/cs/REST/sitesサービスのチケットを取得します。

1. Ticket Granting Ticketを取得するためのコール

リクエスト

POST /cas/v1/tickets HTTP/1.1

Content-Type:application/x-www-form-urlencoded

Content-Length: 35

username=fwadmin&password=xceladmin

レスポンス

HTTP/1.1 201 Created

Location: http://localhost:8080/cas/v1/tickets/TGT-1-ej2biTUFoCNBwA5X4lJn4PjYLRcLtLYg2QhLHclInfQqUk3au0-cas

Content-Length: 441

...

2. サービス・チケットを取得するためのコール

リクエスト

POST /cas/v1/tickets/TGT-1-ej2biTUFoCNBwA5X4lJn4PjYLRcLtLYg2QhLHclInfQqUk3au0-cas HTTP/1.1

Content-Type:application/x-www-form-urlencoded

Content-Length: 57

service=http%3A%2F%2Flocalhost%3A8080%2Fcs%2FREST%2Fsites

レスポンス

HTTP/1.1 200 OK

Content-Type: text/plain

Content-Length: 29

ST-1-7xsHEMYR9ZmKdyNuBz6W-cas

このプロトコルはきわめて単純です。まず、application/x-www-form-urlencoded POSTリクエストに username および password パラメータを設定して、Ticket Granting Ticket (TGT) を取得するコールを実行します。レスポンスに

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 67: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証67

は Location HTTP ヘッダーが含まれます。serviceパラメータを設定して別のapplication/x-www-form-urlencoded POSTリクエストを発行する場合は、このヘッダーを使用する必要があります。レスポンス本体には実際のチケットが含まれます。

チケットおよびマルチチケットの使用生成されたチケット / マルチチケットを使用するには、ticket/multiticket URL 問合せパラメータを指定する必要があります。例 :

http://localhost:8080/cs/REST/sites?ticket=ST-1-7xsHEMYR9ZmKdyNuBz6W-cas

http://localhost:8080/cs/REST/sites?multiticket=ST-2-Bhen7VnZBERxXcepJZaV-cas

1. アプリケーションが、チケット / マルチチケットを取得するためのコールを実行します。

- 入力 : サービス、ユーザー名、パスワード

- 出力 : チケット / マルチチケット

2. アプリケーションが、リソースを取得するためのコールをリモート Satellite Server に対して実行します。

- 入力 : チケット、リソース入力データ

- 出力 : リソース出力データ

3. リモート Satellite Server が、生成された「アサーション」を検証するためのコールを実行します。このアサーションにはユーザー情報が含まれています。Satellite Server には、マルチチケットの時間ベースのキャッシュも保持されます。そのため、以降のコールでは検証のコストが発生しません。

- 入力 : チケット / マルチチケット

- 出力 : アサーション

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 68: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証68

4. この手順はオプションです。 Satellite Server 側で、SSOConfig.xmlファイル・パラメータの proxyTicketsパラメータが trueに設定されている場合は、チケットのプロキシも行われます。

- 入力 : チケット

- 出力 : プロキシされたチケット

5. リモート Satellite Server が WebCenter Sites に対してコールを実行します。

- 入力 : アサーション ( シリアライズ形式 )、リソース入力データ

- 出力 : リソース出力データ

6. この手順はオプションです。 WebCenter Sites 側でセキュリティが有効な場合は、チケットを検証するためのコールを WebCenter Sites が実行します。

- 入力 : チケット / マルチチケット

- 出力 : アサーション

デフォルトでは、WebCenter Sites とリモート Satellite Server 間の通信チャネルは信頼されていません。リモート Satellite Server の SSOConfig.xmlファイルのproxyTicketsパラメータが trueに設定されているため、アクセスしているアプリケーションで指定されたチケットが、リモート Satellite Server によって強制的にプロキシされます。

適なパフォーマンスを実現するために、Satellite Server のみで認証を行うようにシステムを構成できます。REST API で使用される REST エレメントとWebCenter Sites エレメントをフィルタから除外し、WebCenter Sites 側のセキュリティ・チェックを無効にする必要があります。つまり、リモート Satellite Server で SSOConfig.xmlファイルの proxyTicketsパラメータを falseに設定する必要があります。このモードではマルチチケットを使用できます。このモードでは、WebCenter Sites インストールがプライベート・ネットワーク内でホストされ、WebCenter Sites とリモート Satellite Server 間の通信チャネルが信頼されている必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 69: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証69

スタンドアロン・アプリケーションの SSO 構成

シングル・サインオン・モジュールは Spring 構成に依存します。必須 Bean はssoproviderのみです。この Bean は ssoconfig Bean を参照します。

Bean およびプロパティ

id="ssolistener", class="com.fatwire.wem.sso.cas.listener.CASListener"

プロパティ 説明

この Bean にはプロパティがありません。

id="ssofilter", class="com.fatwire.wem.sso.cas.filter.CASFilter"

プロパティ 説明

config 必須。SSO 構成リファレンスです。

サンプル値 : ssoconfig

provider 必須。 SSO プロバイダ参照です。

サンプル値 : ssoprovider

id="provider", class="com.fatwire.wem.sso.cas.CASProvider"

プロパティ 説明

config SSO 構成リファレンスです。

サンプル値 : ssoconfig

id="config", class="com.fatwire.wem.sso.cas.conf.CASConfig"

プロパティ 説明

applicationProxyCallbackPath

プロキシ・コールバックのパス (casUrlからの相対パス ) です。

デフォルト値 : /proxycallback

authRedirect このプロパティは、保護されているページへの未認証アクセスに対するデフォルトの動作を指定するために使用します。true

を指定すると、ユーザーが CAS ログイン・ページにリダイレクトされます。falseを指定すると、ユーザーが未認証の場合は 403 エラーが表示されます。この設定は、Pragma: auth-

redirect HTTP ヘッダーによって上書きできます。

デフォルト値 : true

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 70: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証70

casLoginPath ログイン・ページのパス (casUrlからの相対パス ) です。

次に示す追加の問合せパラメータを受け取ることができます。

• wemLoginTemplate。デフォルト・テンプレートのかわりに使用される HTML ログイン・テンプレートを含むページを指します。このテンプレートには 2 つのフィールド(usernameおよび password) を含める必要があります。このテンプレートでは HTML <form>タグは使用しないでください。

• wemLoginCss。ログイン・フォームで使用されるスタイル宣言を含む CSS ページを指します。

デフォルト値 : /login

casRESTPath CAS REST サーブレットのパス (casUrlからの相対パス ) です。

デフォルト値 : /v1

casSignoutPath ログアウト・ページのパス (casUrlからの相対パス ) です。

デフォルト値 : /logout

casUrl 必須プロパティ。CAS URL の接頭辞です。

例 : http://localhost:8080/cas

gateway trueを指定すると、保護されているページへのリクエストがCAS にリダイレクトされます。チケット認可 Cookie が存在する場合は、ユーザーが暗黙的に認証されます。存在しない場合は、ユーザーは元の場所にリダイレクトされます。これは主に、ユーザーが別のアプリケーションですでにログインしている場合に、暗黙的な認証を許可するために使用されます。

デフォルトでリダイレクトの動作が行われるようにする場合は次の点に注意してください。クライアントがリダイレクトを追従できることを確認してください。追従できない場合は、gateway=false URL 問合せパラメータを使用して、デフォルトの動作を上書きする必要があります。たとえば、wemLoginTemplateおよび wemLoginCssパラメータの処理中は、CAS がリダイレクトを追従できないため、この設定を使用して、gateway=falseを URL に付加する必要があります。

デフォルト値 : false

multiticketTimeout マルチチケットのタイムアウト ( ミリ秒単位 )。デフォルト値 : 600000

protectedMappingExcludes

除外されるマッピングのリストです。正規表現を使用できます。

許可値 : protectedMappingIncludesを参照してください。

id="config",

class="com.fatwire.wem.sso.cas.conf.CASConfig" ( 続き )

プロパティ 説明

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 71: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証71

protectedMappingIncludes

保護されるマッピングのリストです。正規表現を使用できます。

許可値 : path?[name=value,#]

pathは URL パスの一部です。アスタリスク (* および **) を含めることができます。単一のアスタリスク *は、フォワード・スラッシュ文字 (/) までの任意の文字列を表します。一方、**はパス全体に適用されます。

/folder1/folder2は /folder1/*に適合しますが、/

folder1/folder2/folder3は適合しません。

/folder1/folder2は /folder1/**に適合します。/

folder1/folder2/folder3も同様に適合します。

?[..]ブロックはオプションです。ブロック内で問合せパラメータを指定できます。パラメータはカンマ区切りにします。特殊文字 #は、指定したパラメータがリクエストのパラメータのサブセットであることを示します。# を省略する場合は、リクエスト・パラメータと指定したパラメータが厳密に一致する必要があります。

パラメータには nameのみを含めることができます。照合はnameのみに対して、または name=value( つまり、nameとvalueの両方 ) に対して行われます。パラメータには複数の値を指定できます。その場合、指定したパラメータ値のいずれかが、対応するリクエストのパラメータ値と一致すると照合テストに合格します。

/file1[size=1|2]は /file1?size=2に一致しますが、 /file1?size=2&author=adminには一致しません。

/file1[size=1|2,name=file1,#]は /file1?size=2および /file1?size=2&author=adminに

一致しますが、

/file1?size=3には一致しません。

リモート Satellite Server を介して使用可能な REST リソースを作成するには、次の値を指定します。 /ContentServer?[pagename=rest/<path toCSElement>,#]

「Recommendation」サンプル・アプリケーション ( 第5 章 ) のカスタム REST リソースに指定する場合は、/ContentServer?[pagename=rest/sample/

recommendation,#]です。

id="config",

class="com.fatwire.wem.sso.cas.conf.CASConfig" ( 続き )

プロパティ 説明

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 72: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST リソースの認証72

SSO フィルタで処理される問合せパラメータ

proxyTickets チケットをプロキシするかどうかを指定します。

コール・チェーンの 後のサーバーに対してこのプロパティをfalseに設定すると、パフォーマンスが 適化されます。

現在のログイン済ユーザーの代理としてこのアプリケーションから CAS で保護された別のアプリケーションをコールする必要がある場合は、このプロパティを trueに設定します。これにより、メソッド SSO.getSSOSession().getTicket(String

service, String username, String password)をコールできるようになります。

デフォルト値 : true

useMultiTickets マルチチケットを使用するかどうかを指定します。

デフォルト値 : true

SSO フィルタで処理される問合せパラメータ

プロパティ名 説明

ticket ユーザー ID を検証するために使用します。 ある限られた期間内で、1 つのリソースに対して 1 回のみ使用できます。

タイプ : <問合せパラメータ >

値 : <ランダムな文字列 >

multiticket ユーザー ID を検証するために使用します。 ある限られた期間内で、任意のリソースに対して複数回使用できます。

タイプ : <問合せパラメータ >

値 : <ランダムな文字列 >

gateway このプロパティを trueに設定すると、公開ページへのリクエストが CAS にリダイレクトされます。チケット認可 Cookie が存在する場合は、ユーザーが暗黙的に認証されます。存在しない場合は、ユーザーは元の場所にリダイレクトされます。これは主に、ユーザーが別のアプリケーションですでにログインしている場合に、暗黙的な認証を許可するために使用されます。

タイプ : <問合せパラメータ >

値 : true | false

id="config",

class="com.fatwire.wem.sso.cas.conf.CASConfig" ( 続き )

プロパティ 説明

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 73: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

CAS の構成73

CAS の構成CAS クラスタリングに関する情報は次のソースを参照してください。

• CAS アーキテクチャの詳細は、次のリンクを使用してください。

http://www.jasig.org/cas/about

• WebCenter Sites のインストール時に CAS クラスタリングを構成する方法の詳細は、WebCenter Sites のインストレーション・ガイドを参照してください。

• LDAP プロバイダで CAS を構成する方法の詳細は、次のリンクを使用してください。

http://www.jasig.org/cas/server-deployment/authentication-handler

REST 認可この項は、管理者の認可プロセスに関心のある開発者を対象とした項です。REST 認可は、アプリケーションのリソース (WebCenter Sites 内のオブジェクトにマップされる ) に対して REST の各操作を実行するための権限を付与するプロセスです。REST 認可は、「デフォルトではすべて拒否」するモデルを使用します。権限が特定のグループに対して明確に付与されていない場合、その権限は拒否されます。

auth-redirect 保護されているページへの未承認アクセスに対するデフォルトの動作を指定するために使用します。このプロパティが trueに設定されている場合は、ユーザーは CAS ログイン・ページにリダイレクトされます。falseに設定されている場合は、403 エラーが表示されます。

タイプ : <Pragma HTTP header>

値 : true | false

SSO フィルタで処理される問合せパラメータ ( 続き )

プロパティ名 説明

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 74: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST 認可74

セキュリティ・モデル

WEM セキュリティ・モデルはオブジェクト、グループおよびアクションに基づいています。セキュリティは、WebCenter Sites Admin インタフェースでオブジェクト・タイプごとに構成する必要があります。

• オブジェクトは、サイト、ユーザー、アセットなど、WEM フレームワーク内のエンティティを示す総称です。保護されたオブジェクトには次のタイプがあります。

• セキュリティ・グループは、ユーザーを集約して、ユーザーの ( オブジェクトへの操作 ) 権限を同時に管理するために使用します。

• アクションとは、セキュリティ権限 (LIST、READ、UPDATE、CREATE、DELETE) です。 LISTは、オブジェクトをリストするサービス (/typesなど )に対して GET権限を与えます。これに対し、READは個々のオブジェクトの全詳細を取得するサービス (/types/{assettype}など ) に対して GET権限を与えます。

権限は、許可されたオブジェクトを操作するためにグループに割り当てられます。ACL など一部のオブジェクトは読取り専用です (WebCenter Sites で直接作成できますが、REST を介して作成することはできません )。

前述したように、セキュリティ構成とは 1 つの配列です。セキュリティ構成では次を指定します。

• 保護されているオブジェクト・タイプおよびオブジェクト

• オブジェクトにアクセス可能なグループ

• グループ ( およびそのメンバー ) がオブジェクトに実行できるアクション

- アセット・タイプ - サイト - ユーザー・ロケール

- アセット - ロール - ACL

- 索引 - ユーザー - アプリケーション

ユーザーが特定のタイプのオブジェクトにアクセスできるのは、そのタイプのオブジェクトに対して指定のアクションを実行する権限を持つグループにそのユーザーが1 つ以上属している場合に限られます。

「セキュリティの構成」ノードにはWebCenter Sites Admin インタフェースの

「管理」タブからアクセスできます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 75: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST 認可75

可能なセキュリティ構成は『Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク管理者ガイド』にまとめられています。

REST リソースへのセキュリティ・モデルを使用したアクセス

WebCenter Sites 内のオブジェクト・タイプとオブジェクトは、WEM フレームワーク内の REST リソースにマップされます。たとえば、Asset Typeオブジェクトは次のリソースにマップされます。

• <BaseURI>/types/リソース ( システム内のすべてのアセット・タイプを一覧表示します )

• <BaseURI>/types/<assettype>リソース ( 選択されたアセット・タイプに関する情報を表示します ) など

WebCenter Sites のアクションは WEM フレームワークの REST メソッドにマップされます。たとえば、アセット・タイプ Content_Cを操作するための READ権限をグループ Editorに付与すると、Editorグループのユーザーには、RESTリソース /types/Content_Cに対して GETおよび HEADメソッドを使用する権限が付与されます。

• LISTアクションでは、グループ・メンバーが REST リソースに対して GETメソッドを使用できます。

• READアクションでは、グループ・メンバーが REST リソースに対して GETおよび HEADメソッドを使用できます。

• UPDATEアクションでは、グループ・メンバーが REST リソースに対してPOSTメソッドを使用できます。

• CREATEアクションでは、グループ・メンバーが REST リソースに対して PUTメソッドを使用できます。

• DELETEアクションでは、グループ・メンバーが REST リソースに対してDELETEメソッドを使用できます。

総合的な情報については、Oracle WebCenter Sites: Web エクスペリエンス管理フレームワーク REST API リファレンスを参照してください。

REST セキュリティの構成

REST セキュリティの構成手順については、『Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク管理者ガイド』を参照してください。

権限解決アルゴリズム

セキュリティ権限を構成する際に、特定のタイプのすべてのオブジェクトまたは特定のタイプの単一のオブジェクトに権限が適用されるように指定できます。たとえば、UPDATE (POST)への権限を任意のサイトに付与すると、グループ内のユーザーはすべてのサイトの詳細を WEM フレームワークで変更できるようになります。UPDATE (POST)への権限を FirstSiteII サンプル・サイトに付与すると、グループ内のユーザーはこのサイトの詳細を WEM で変更できるようになります。

アセットは常に特定のサイトからアクセスされるため、Assetオブジェクト・タイプの場合、セキュリティ設定を適用するサイトを指定する必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 76: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST を介したアセットの管理76

AssetTypeオブジェクトを拡張するには、サブタイプを指定します。サブタイプはよりきめ細かくセキュリティ構成を行うために使用します。たとえば、DELETE権限をアセット・タイプ Content_Cに設定すると、DELETEリクエストが REST リソース /types/Content_Cに対して実行されます ( つまり、アセット・タイプ Content_Cがシステムから削除されます )。

権限はグループにのみ付与できるため、ユーザーの全体的な権限は、そのユーザーの全グループを通じて権限が算出されるまで明確になりません。WEM フレームワークには権限解決アルゴリズムが用意されています。その基本的な手順を次に示します。

1. REST によって、ユーザーがメンバーシップを持つグループが検索されます。

2. REST によって、各グループが実行できる操作およびその対象となる RESTリソースが判別されます。サイトまたはサブタイプが指定されている場合は、個々に考慮されます。

3. REST によって、手順 1 および 2 の結果が比較されます。手順 1 の 1 つ以上のグループが、手順 2 のグループのリストで該当する場合、アクセスが許可されます。そうでない場合は、アクセスが拒否されます。

REST を介したアセットの管理WebCenter Sites REST API を介したアセットの管理を示すサンプル・コードは、WebCenter Sites のインストール・ディレクトリの次のパスにあります。

Misc/Samples/WEM Samples/REST API samples/Basic Assets/com/fatwire/rest/samples/basic/

Misc/Samples/WEM Samples/REST API samples/Basic Assets/com/fatwire/rest/samples/flex/

サブフォルダ basicおよび flexにはそれぞれ次のファイルが含まれます。

• CreateAsset.java

• DeleteAsset.java

• ReadAsset.java

• UpdateAsset.java

コードは、段階を追った説明によって詳細に文書化されています。ベーシック・アセットの管理の例では、HelloAssetWorld サンプル・サイトを使用します。フレックス・アセットの管理の例では、FirstSite II サンプル・サイトを使用します。必要なアセット・タイプおよびアセットに関するすべての情報は javaファイルを参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 77: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 7 章 REST リソースの使用

REST を介したアセットの管理77

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 78: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

78

第 8 章

Customizable Single Sign-On ファシリティ

• WEM フレームワークのログイン動作のカスタマイズ

• カスタム SSO 動作の構成およびデプロイ

• CSSO サンプル実装の実行

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 79: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

WEM フレームワークのログイン動作のカスタマイズ79

WEM フレームワークのログイン動作のカスタマイズWEM フレームワークの認証は CAS フレームワーク上に構築されており、Oracle Customizable Single Sign-On ファシリティ ( 別名 CSSO) と呼ばれるカスタマイズ・レイヤーが組み込まれています。CSSO ファシリティには、カスタムSSO ソリューションの作成に使用される認証拡張機能が含まれているため、CAS 構成を直接変更する必要がありません。かわりに、これらの拡張機能をSpring 構成で CAS 構成に注入することによって希望のログイン動作を実装します。

CSSO ファシリティにあらかじめパッケージされているクラスを拡張してカスタム SSO ソリューションを実装できます。また、インスタンス化するクラスをSpring に指定するためのデフォルト Spring 構成ファイルも用意されています。WEM SSO をカスタマイズすると別のログイン画面を使用できますが、ユーザー名 / パスワードの組合せ以外の資格証明が必要です。または、外部認証局を使用して WebCenter Sites ユーザーを認証します。カスタム SSO 実装の内容は次のとおりです。

• 3 つの Java クラス ( デフォルト・クラスを拡張します )

• 構成ファイル ( 新しいクラスをフレームワークに公開します )

デフォルト CSSO クラスは、WEM SSO の標準実装に従ってすべての資格証明の検出および認証を行います。これらのクラスは customdefaultWEMSSObean.xml Spring 構成ファイルでインスタンス化されます。デフォルト CSSO クラスを拡張することによって、カスタム SSO ソリューションの動作を指定するメソッドを定義できます。たとえば、ブラウザ・アクセス用、REST 用、シック・クライアント認証用に個別の認証を作成できます。デフォルト CSSO クラスを拡張する場合は、カスタム Spring 構成ファイルを作成してカスタム・クラスを指定し、それらのクラスを WEM フレームワークに公開する必要があります。

CSSO ファシリティには、WEM のデフォルトのログイン動作をカスタム・ログイン動作に置き換えることができる詳細な SSO サンプル (Java ソース・ファイルを含む ) が用意されています。サンプル SSO 実装では、2 種類の認証方法 (ユーザー名とパスワードの組合せ ( 追加のドメイン・フィールドを含む ) および外部ユーザー識別子 ) を説明します。( 外部識別子によって、外部認証局で認証されたユーザーを WebCenter Sites システム・ユーザーにマップします。)

この章の残りの部分では、CSSO ファシリティのデフォルト・コンポーネントおよびカスタム SSO ソリューションの実装手順について説明します。カスタムSSO ソリューションの例を確認するには、この章の 後で説明する CSSO サンプルおよびその実行手順を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 80: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

デフォルト CSSO 実装のコンポーネント80

デフォルト CSSO 実装のコンポーネントこの項では、CSSO ファシリティで提供されるデフォルト・コンポーネントについて説明します。これらのコンポーネントは、SSO 実装を独自にカスタマイズする際の開始ポイントになります。

com.fatwire.wem.sso.cas.custom.basisパッケージ ( 表 1 を参照 ) には、CSSO ファシリティに組み込まれているデフォルト・クラスが含まれます。デフォルト Spring 構成ファイル (customdefaultWEMSSObeans.xml) は、これらのクラスをインスタンス化して、デフォルトの WEM ログイン動作を実装します。

注意

CSSO ファシリティには WEM のデフォルトのログイン動作をカスタム・ログイン動作で置き換えるための SSO サンプル一式が用意されています。詳細は 90 ページの「CSSO サンプル実装の実行」を参照してください。

表 1: com.fatwire.wem.sso.cas.custom.basis

クラス : 説明

CustomAuthenticator.java CustomAuthenticationインタフェースを実装します。このクラスはログイン・シーケンスの動作を制御し、認証リクエストを処理します。デフォルトでは、WEM 標準のログイン・フォームを表示し、認証を完了するために WEM フレームワークに戻ります。

このクラスの拡張方法の詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。

CustomConfiguration.java デフォルト Spring 構成ファイルに設定されているプロパティへのアクセスを提供します。カスタム SSO 実装で追加プロパティが必要な場合は、このクラスを拡張します。

このクラスの拡張方法の詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。

CustomAuthenticator.java カスタム認証で使用する資格証明値の標準セットを提供します。カスタム SSO 実装で追加属性が必要な場合は、このクラスを拡張します。

このクラスの拡張方法の詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 81: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ81

com.fatwire.wem.sso.cas.custom.interfacesパッケージ ( 表 2 を参照 ) はカスタム認証インタフェースを定義します。

カスタム SSO 動作の構成およびデプロイカスタム SSO 動作を構成およびデプロイするには、まず CSSO ファシリティに組み込まれているデフォルト・クラスを拡張する必要があります。続いて新しいJava クラスを Spring に対して指定するために、クラスのインスタンス化を行うカスタム Spring 構成ファイルを作成して、それらのクラスを CSSO フレームワークに公開します。基本的な手順は次のとおりです。

1. デフォルト CSSO クラス CustomAuthenticator.java、CustomConfiguration.javaおよびCustomCredentials.java(com.fatwire.wem.sso.cas.custom.basisパッケージに含まれる ) を拡張します。

a. 新しい Java クラスを作成してデフォルト CSSO クラスを拡張します。

b. 作成した Java クラスを jarファイルにパッケージ化し、その jarファイルを CAS サーブレット (cas/WEB-INF/lib) のクラスパスに配置します。

詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。

2. 新しい Java クラスがインスタンスされるように Spring に指定します。

a. 使用する SSO 実装のすべてのカスタム・クラス名およびプロパティを含む Spring 構成ファイルを作成します。

b. カスタム Spring 構成ファイルを spring-configurationフォルダ (cas/WEB-INF/) に配置します。

c. デフォルト Spring 構成ファイル (customDefaultWEMSSObeans.xml) から .xml拡張子を削除します。

詳細は、84 ページの「Java クラスをインスタンス化するための Spring での指定」を参照してください。

3. 外部認証局を使用してユーザーを認証する場合は、外部ユーザー識別子を、WebCenter Sites システムの該当するユーザー名、一意の識別子および ACLにマップします。手順の詳細は、88 ページの「外部ユーザー識別子からWebCenter Sites 資格証明へのマッピング」を参照してください。

表 2: com.fatwire.wem.sso.cas.custom.interfaces

クラス 説明

CustomAuthenticator.java カスタム SSO ソリューションで実装が必要なインタフェースを定義します。

詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。

CustomRestCodec.java ユーザー名 / パスワード以外のカスタムREST 認証トークンをエンコードおよびデコードするために実装が必要なインタフェースを定義します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 82: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ82

4. CAS Web アプリケーションを再起動します。 詳細は、90 ページの「CAS Web アプリケーションの再起動」を参照してください。

この項の残りの部分では、前述で概説した手順の詳細を説明します。

デフォルト CSSO クラスの拡張

SSO 実装は、デフォルト CSSO クラス CustomAuthenticator.java、CustomConfiguration.javaおよび CustomCredentials.javaに指定されている一連のコール・メソッドです。WEM のデフォルトのログイン動作をカスタム動作で置き換えるには、デフォルト CSSO クラスを拡張して、その動作のための新しい Java クラスを作成する必要があります。CSSO クラスを拡張することによって、デフォルト CSSO クラスで指定されているメソッドが、変更対象機能のカスタム・クラスで指定されているメソッドに置き換わります。

カスタム SSO ソリューションを実装する場合に拡張が必要な(com.fatwire.wem.sso.cas.custom.basisパッケージ内の )3 つのクラスは次のとおりです。

• CustomConfiguration.java: デフォルト Spring 構成ファイルで指定されている外部定義プロパティへのアクセスを提供します。デフォルトでは、このクラスは Spring 構成ファイルから SSO 構成にプロパティを注入するためのプレースホルダにすぎません。カスタム SSO 実装に固有の追加プロパティ(URL などの構成情報 ) を組み込む場合は、このクラスを拡張します。

• CustomCredentials.java: カスタム認証に使用する資格証明値の標準セットを提供します。このクラスは Web フロー・ハンドラまたはカスタム RESTオーセンティケータでビルドおよび移入されます。デフォルトでは、このクラスは (CAS が提供する )UsernamePasswordCredentials標準オブジェクトを定義します。この標準オブジェクトは、ユーザー認証の完了に必要なすべての情報をプロパティ username、userIdおよび currentACLによって収集します。これらのプロパティの値は、実際のユーザー認証を実行する際に、オーセンティケータ (CustomAuthenticator.java) で使用される属性マップに移入されます。

カスタム SSO ソリューションで追加の資格証明が必要な場合は、このクラスを拡張します。このクラスでユーザー情報をオーセンティケータに渡してユーザー認証を完了する方法の例は、サンプル CSSO クラスSampleCredentials.javaのコード (Misc/Samples/WEM/Samples/CustomizableSSO/libフォルダ ) を参照してください。

• CustomAuthenticator.java: CustomAuthenticationインタフェースを実装します。このクラスはログイン・シーケンスの動作を制御し、認証リクエストを処理します。デフォルトでは、WEM 標準のログイン・フォームを表示し、認証を完了するために WEM フレームワークに戻ります。

すべての認証決定および CAS Web フロー・アクションがこのクラスに転送され、アクションが実行されます。CAS Web フローは複数の手順を実行し

注意

デフォルトの CustomAuthenticator.javaクラスは、SSO 実装のすべての認証メソッドを含んでいるため も重要なクラスです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 83: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ83

ます。その一つに performLoginActionメソッドの起動があります。このメソッドはログイン・フォームを表示するか、外部認証局と通信します。

このクラスには、外部ユーザーを WebCenter Sites ユーザーにマップする静的メソッド callCsResolverPageも定義されています。カスタム SSO 実装で外部認証局を使用してユーザーを認証する場合は、callCsResolverPageメソッドで CSSO オーセンティケータの一意の名前を定義する必要があります。詳細は、88 ページの「外部ユーザー識別子から WebCenter Sites 資格証明へのマッピング」を参照してください。

このクラスが実装するメソッドのインタフェースの全記述を次に示します。

static final int SUCCESS = 0;

static final int GOTOWEM = 1;

static final int FAILURE = 2;

static final int REDIRECT = 3;

static final int ERROR = 4;

static final int REPEAT = 5;

/**

* Called from UserAuthentication handler to check for alternate

* credentials and validate appropriately.

* @param userCredentials

* @return

*/

public int authenticate(com.fatwire.wem.sso.cas.custom.basis.CustomCredentials userCredentials);

/**

* Called from CSAuthenticationHandler to check for REST user

* credentials and validate appropriately.

*/

public int authenticateRest(UsernamePasswordCredentials restCredentials);

/**

* Called from CSAuthenticationHandler to check is username/password

* combination is detected.

*/

public boolean checkRestCredentials(String token);

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 84: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ84

/**

* Called from CSAttributeDAO to check for encoded credentials and

* if so then return the correct username for DAO processing.

* @param username

* @return

*/

public String resolveRestUsername(String username);

/**

* Called from LoginViewAction to handle login view processing. This

* method allows the calling of internal CAS methods.

* @param context

* @param userAuthentication

* @param centralAuthenticationService

* @return

*/

public int performLoginAction(RequestContext context,

CustomAuthentication userAuthentication,

CentralAuthenticationService centralAuthenticationService);

/**

* Called from casLogoutView to perform sign in cleanup

* @param request

* @param response

*/

public void performLogoutAction(HttpServletRequest request, HttpServletResponse response);

Java クラスをインスタンス化するための Spring での指定

SSO 実装に必要なカスタマイズ設定はすべて、1 つの Spring 構成ファイルで指定します。このファイルは spring-configurationフォルダ (cas/WEB-INF) にあります。

この項の残りの部分では次のトピックについて説明します。

• Spring 構成ファイルの作成

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 85: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ85

• Spring 構成ファイルの配置

Spring 構成ファイルの作成デフォルト SSO 実装のクラスおよびプロパティは Spring 構成ファイルcustomDefaultWEMSSObeans.xmlで定義されています。このファイルはspring-configurationフォルダ (cas/WEB-INF) にあります。CSSO をカスタマイズする場合、新しい Spring 構成ファイルを作成するか、デフォルト Spring構成ファイルで参照されるクラスおよびプロパティをカスタマイズすることができます。この項の残りの部分では後者の方法を取り上げます。

デフォルト Spring 構成ファイルには、デフォルト SSO 実装に必要なクラスおよびプロパティを参照する複数の Bean 識別子が含まれます。customUserConfiguration Bean は CustomConfiguration.javaクラスを参照し、customUserAuthenticator Bean は CustomAuthenticator.javaクラスを参照します。これらのクラスは Spring 構成ファイルによってインスタンス化され、SSO 実装の認証プロセスで永続オブジェクトを作成する際に使用されます。カスタム SSO ソリューションを作成するには、これらの Bean 内でカスタムJava クラスを参照する必要があります。

また、customUserConfiguration Bean には、デフォルト SSO 実装にシステム情報を提供する構成プロパティを指定します。これらのプロパティには SSO 実装をデプロイする環境の値を設定します。Spring 構成ファイルをカスタマイズする場合、カスタム SSO 実装の環境に適合するようにプロパティの値を変更するか、カスタム SSO 実装に必要な追加プロパティを含める必要があります。

CustomConfiguration.javaクラスを拡張すると、Spring 構成ファイルのcustomUserConfiguration Bean に追加プロパティを定義できます。たとえば、SSO 実装でカスタム・ログイン・フォームを提供する JSP ファイルを作成する場合は、CustomConfiguration.javaクラスを拡張して、その JSP ファイルの場所を指定するプロパティを作成します。

この項の残りの部分では、デフォルト Spring 構成ファイル(customDefaultWEMSSObean.xml) で参照されるクラスおよびプロパティを分析します。

デフォルト Spring 構成ファイル

1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance"

注意

CustomCredentials.javaクラスは、Spring 構成ファイルから参照されません。かわりに、このオブジェクトを performLoginActionメソッドでインスタンス化するコードを記述します。このメソッドはデフォルトCSSO の CustomAuthenticator.javaクラスに定義されています。またこのメソッドは、ログイン・リクエストが行われるたびにカスタム資格証明オブジェクトを作成し、認証のためにそのオブジェクトを CAS に渡します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 86: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ86

4 xmlns:flow="http://www.springframework.org/schema/webflow-config"

5 xmlns:p="http://www.springframework.org/schema/p" 6 xsi:schemaLocation="http://www.springframework.org/

schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

7 http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">

8 <!-- Custom SSO Bean definitions. This file defines either the default CAS/SSO configuration or a special

user implementation.No other CAS configuration files are modified for a custom implementation -->

9 <!-- This bean is never modified. It defines the web-flow controller which always passes control into

the custom authenticator -->

10 <bean id="customUserLoginAction" class="com.fatwire.wem.sso.cas.web.CustomLoginViewAction"

11 p:centralAuthenticationService-ref="centralAuthenticationService"

12 p:customAuthentication-ref="customUserAuthenticator"

13 />14 <!-- This bean is usually not modified. Override it when

there needs to be a custom encoding for information passed between the web-flow and any

external component -->

15 <bean id="customRestCoder" class="com.fatwire.wem.sso.cas.custom.basis.CustomRestTokenCoding"

16 />17 <!-- Modify this bean with a custom configuration

implementation class when additional parameters are needed for a custom implementation -->

18 <bean id="customUserConfiguration" class="com.fatwire.wem.sso.cas.custom.basis.CustomConfiguration"

19 p:casLoginUrl="http://localhost:7080/cas/login"20 p:resolverUrl="http://localhost:8080/cs/custom/

customCsResolver.jsp"21 p:resolverUsername="fwadmin"22 p:resolverPassword="xceladmin"23 p:traceFlag="false"24 />25 <!-- Modify this bean with a customAuthentication class for

a custom implementation. -->26 <bean id="customUserAuthenticator"

class="com.fatwire.wem.sso.cas.custom.basis.CustomAuthenticator"

27 p:customConfiguration-ref="customUserConfiguration"

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 87: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ87

28 p:customRestCoder-ref="customRestCoder"29 />30 </beans>

デフォルト Spring 構成ファイルの分析

• 行 18 は customUserConfiguration Bean であり、デフォルト CSSO のcustomConfiguration.javaクラスを参照しています。( このクラスの詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。) この Bean にはデフォルト SSO 実装に必要なプロパティも含まれます。

- 行 19 では、casLoginURLプロパティを参照しています。このプロパティは CAS ログイン機能へのベース URL を示します。ドメインおよびポート番号に CAS サーバー・インストールとは異なる値が指定されている場合は、設定を変更する必要があります。

- 行 20 – 22 では、外部認証用プロパティ resolverURL、resolverUsernameおよび resolverPasswordを参照しています。WebCenter Sites を使用してユーザーを認証する場合、これらのプロパティを参照する必要はありません。外部認証局を使用してユーザーを認証する場合は、これらのプロパティを参照する必要があります。これらのプロパティを参照した場合、外部識別子から WebCenter Sites システム・ユーザーへのマッピングを実装できます。

- 行 20 では resolverURLプロパティを参照しています。外部認証局を使用してユーザーを認証する場合は、WebCenter Sites 内のcustomCsResolverページへの完全な URL をこのプロパティに指定する必要があります。customCsResolverページはユーザーの外部識別子を取得し、ユーザーの WebCenter Sites 資格証明を取得するために WebCenter Sites データベースに問い合せます。このプロパティで指定されているドメインおよびポート番号が WebCenter Sites インストールの値と異なる場合はこの値を変更する必要があります。

- 行 21 では resolverUsernameプロパティを参照しています。外部認証局を使用してユーザーを認証する場合は、SystemUserAttr表の読取り権限を持つ WebCenter Sites ユーザーのユーザー名をこのプロパティに指定する必要があります。このユーザー名は、customCsResolverページで WebCenter Sites データベースを問い合せて、外部ユーザー識別子を登録済の WebCenter Sites ユーザーに解決する必要がある場合に使用されます。

- 行 22 では、resolverPasswordプロパティを参照しています。外部認証局を使用してユーザーを認証する場合は、resolverUsernameプロパティ ( 行 21) で指定したユーザーのパスワードをこのプロパティに指定する必要があります。

マッピングの実装の詳細は、88 ページの「外部ユーザー識別子からWebCenter Sites 資格証明へのマッピング」を参照してください。

- 行 23 では、traceFlagプロパティを参照しています。このプロパティには、カスタム SSO レイヤーの情報が記述されるトレース・ログを有効 /無効にするかどうかを指定します。このプロパティには TrueまたはFalseを設定できます。

• 行 26 は customUserAuthenticator Bean であり、デフォルト CSSO のCustomAuthenticator.javaクラスを参照しています。( このクラスの詳細は、82 ページの「デフォルト CSSO クラスの拡張」を参照してください。)

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 88: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ88

Spring 構成ファイルの配置デフォルト Spring 構成ファイルには、WEM のデフォルトのログイン動作で使用されるクラスとプロパティが指定されています。このファイルは spring-configurationフォルダ (cas/WEB-INF) にあります。同じ場所に独自のファイルを配置するにはデフォルト・ファイルを非アクティブにする必要があります( ファイルの .xml拡張子を削除または変更します )。このようにする理由は、Spring では spring-configurationフォルダ (cas/WEB-INF) に含まれるすべての Spring 構成ファイルがロードされ、それらのファイルが 1 つの構成にマージされるためです。カスタム・ファイルおよびデフォルト・ファイルにはいずれも、同じ Bean 識別子が指定されるので、一方のファイルのみが Spring 構成で認識されます。Bean 識別子が重複している場合は初期化に失敗します。

外部ユーザー識別子から WebCenter Sites 資格証明へのマッピング

CSSO ファシリティでは、外部認証局を使用して WebCenter Sites ユーザーを認証できます。外部認証局は、ユーザーの資格証明を検証する際に、一意の外部識別子をそのユーザーに関連付けます。WEM 認証を完了するには、メソッドcallCsResolverPage( デフォルト CSSO クラス CustomAuthenticator.javaの静的メソッドとして定義 ) を使用して、ユーザーの外部識別子を WebCenter Sites の対応するシステム・ユーザー名、一意の識別子および ACL にマップする必要があります。

外部識別子を WebCenter Sites システム・ユーザーにマップするには、Spring 構成ファイルに外部認証用プロパティが設定されていることを確認してください(87 ページの「デフォルト Spring 構成ファイルの分析」を参照 )。外部識別子から対応する WebCenter Sites システム資格証明へのマッピングを実装するには、次の手順に従います。

マッピングを実装するには :

1. ( 拡張した CustomAuthenticator.javaクラスで定義されている )callCsResolverPageメソッドで、カスタム SSO 実装の外部認証局に一意のCSSO オーセンティケータ名を定義します。

たとえば、次の callCsResolverPageメソッド ( サンプル CSSO クラスSampleAutheticator.javaでの定義 ) は、"samplesso"という一意のオーセンティケータ名を定義します。

Map<String,String>csTokens=callCsResolverPage(externalUserId, "samplesso")

2. 一般管理者 (fwadmin/xceladminなど ) として WebCenter Sites Admin インタフェースにアクセスします。

3. 「管理」タブで、「管理ツール」ノードを開き、「ユーザー」をダブルクリックします。

注意

customDefaultWEMSSObeans.xmlは削除しないでください。かわりに、ファイルの .xml拡張子を削除または変更します。こうすることで、WEM のデフォルトのログイン画面を使用するように戻す場合にファイルをリストアできます。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 89: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

カスタム SSO 動作の構成およびデプロイ89

4. 外部識別子を WebCenter Sites 資格証明にマップするユーザーを次のように選択します。

a. 「ユーザー名の入力」フィールドにユーザーの名前を入力します。

b. 「操作の選択」セクションで「ユーザー属性の修正」ラジオ・ボタンを選択します。

c. 「OK」をクリックします。

「ユーザーの修正」フォームが次のように表示されます。

5. 「ユーザー名」列で、外部識別子を WebCenter Sites 資格証明にマップするユーザーの名前を選択します。

次のようなフォームが表示されます。

6. フォームで次のようにフィールドに入力します。

- 「属性名」フィールドに、一意の CSSO オーセンティケータ名 ( 外部認証局の識別に使用される名前 ) を入力します。この名前は、callCsResolverPageメソッドで定義した CSSO オーセンティケータの一意の名前 ( 手順 1 を参照 ) と一致する必要があります。

- 「属性値」フィールドに、外部認証局から提供された、ユーザーの外部識別子を入力します。

7. 「修正」をクリックして、新しい属性と値を WebCenter Sites のSystemUserAttrデータベース表に保存します。

8. 外部識別子に関連付けられたすべてのユーザーに対して手順 3 – 7 を繰り返します。

マッピング・プロセスの分析

callCsResolverPageメソッドをコールして外部識別子を WebCenter Sites システム・ユーザーにマップすると、一意の CSSO オーセンティケータ名がカスタム SSO 実装で定義されます。このメソッドは外部識別子と一意の CSSO オーセンティケータ名を使用して外部ユーザーを WebCenter Sites システム・ユーザーにマップします。このマップには次のアイテムが含まれます。このアイテムはCustomCredentialsオブジェクトの関連プロパティに配置されます。

• username: ユーザーの WebCenter Sites ユーザー名です。

• currentUser: ユーザーの WebCenter Sites 一意識別子です。

• currentACL: ユーザーの ACL です。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 90: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行90

CustomCredentialsオブジェクトは username、currentUserおよびcurrentACLの値を、CustomAuthenticator.javaクラスで定義されているauthenticateメソッドに渡します。authenticateメソッドはこれらの値を使用して、WebCenter Sites ユーザーを識別するレスポンス・マップを作成します

CAS Web アプリケーションの再起動

カスタム SSO 実装をデプロイするには、CAS Web アプリケーションを再起動します。CAS が再起動されると、spring-configurationフォルダ (cas/WEB-INF) にあるカスタム Spring 構成ファイルに定義されたクラスを使用してカスタム・ログイン動作が行われます。

CSSO サンプル実装の実行CSSO ファシリティにはカスタム SSO 実装の実用的なサンプル (Java ソース・ファイルを含む ) が用意されています。このサンプルは、WEM のデフォルトのログイン動作をカスタム・ログイン動作に置き換えます。カスタム・ログイン動作には標準的なユーザー名とパスワードのフィールド、ユーザーがドメイン名を指定するための追加フィールド、外部ユーザー識別子用のフィールドが含まれます。このサンプルでは、2 種類の認証方法 ( ユーザー名とパスワードの組合せ( 追加のドメイン・フィールドを含む ) および外部認証局によるユーザー認証 )を説明します。

CSSO ファシリティに含まれるサンプル・コンポーネントの詳細は、95 ページの「サンプル CSSO コンポーネント」を参照してください。

サンプル SSO 実装を実行するには :

1. customizable-sso-1.0.jar(Misc/Samples/WEM Samples/CustomizableSSO) をデプロイするために、CAS クラスパス (cas/WEB-INF/libフォルダ ) に配置します。このファイルにはサンプル CSSO の各クラスが含まれます。

サンプル・クラスの詳細は、91 ページの「サンプル CSSO クラス」を参照してください。

2. CAS Web アプリケーション・コンテキスト・フォルダ内に fatwireフォルダを作成します。SampleLoginform.jspファイルを fatwireフォルダにコピーします。

注意

CSSO のサンプルでは、ログイン・フォームのフィールドに適用される検証ルールは一切実施されません。フィールドの完全性はチェックされず、不適切な値も報告されません。認証が失敗した場合は、特に説明などは表示されずにフォームが再表示されます。このフォームを本番環境で実装する場合は、エラーが発生した際に適切な診断メッセージによってすべてのルールが適用されるようにする必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 91: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行91

3. customizable-sso-1.0.jarファイルに含まれるクラスがインスタンス化されるように、Spring に対して次のように指定します。

a. customSampleSSObeans.xml構成ファイルを spring-configurationフォルダにコピーします。

b. customSampleSSObeans.xmlファイルのプロパティを動作環境に適合するように変更します。

c. customDefaultWEMSSObeans.xml構成ファイル (spring-configurationフォルダ内 ) の名前から .xml拡張子を削除します。

サンプル Spring 構成ファイルの詳細は、93 ページの「サンプル Spring 構成ファイル」を参照してください。

4. 外部識別子の資格証明を使用してユーザーを検証する場合は、外部ユーザー識別子とユーザーの WebCenter Sites システム資格証明とのマッピングの関係を定義するために、対応するエントリを SystemUserAttr表に追加します。

手順については、88 ページの「外部ユーザー識別子から WebCenter Sites 資格証明へのマッピング」を参照してください。

5. CAS Web アプリケーションを再起動します。

サンプル・ログイン・フォームは次のようになります。

サンプル CSSO クラス

CSSO のサンプルには次の 3 つの Java クラスが含まれています。このクラスはデフォルト CSSO クラスを拡張し、サンプル SSO 実装のログイン動作に必要なメソッドを提供します。

• SampleConfiguration.java: このクラスは、デフォルトの CSSO のCustomConfiguration.javaクラスを拡張して、ドメイン・プロパティ(sampleDomain) を組み込みます。このプロパティは、ユーザーがログイン・フォームでこのフィールドに値を入力した際に外部認証局で検証されます。sampleDomainプロパティは Spring によって CSSO 構成に注入されます。

このクラスにはサンプル・ログイン・フォームを定義する sampleFormURLプロパティも含まれます。このフォームはユーザーの資格証明を取得するためにコールされます。このクラスの標準およびカスタムプロパティは、サンプル Spring 構成ファイルで指定します。

• SampleCredentials.java: このクラスは、デフォルトの CSSO のCustomCredentials.javaクラスを拡張して、ユーザー認証の完了に必要なすべての情報を収集します。ユーザーがログイン・フォームでユーザー名と

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 92: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行92

パスワードを入力した場合、SampleAuthenticatorクラスはUsernamePasswordCredentialsオブジェクトを使用します。ユーザーがログイン・フォームでユーザー名とパスワードによる資格証明のかわりに外部識別子を入力した場合は、SampleCredentialsオブジェクトが作成され、オーセンティケータ ( この場合、サンプル SSO クラスSampleAuthenticator.java) に情報が渡されます。

CAS では、作成される資格証明オブジェクトのタイプによって使用されるオーセンティケータ ( 標準またはカスタム ) が決まります。ユーザー名とパスワードによる資格証明がログイン・フォームで指定された場合は、WEM標準のユーザー名とパスワードによるオーセンティケータが自動的に使用されます。ログイン・フォームで外部識別子が指定された場合は、カスタム・オーセンティケータがコールされ、SampleCredentialsオブジェクトを認証します。

• SampleAuthenticator.java: このクラスはデフォルトの CSSO のCustomAuthenticator.javaクラスを拡張します。また、CSSO フレームワークでコールされるすべての認証メソッドを含みます。サンプルをデプロイすると、CAS 認証時のすべての認証決定および Web フロー・アクションがこのクラスに送信され、アクションが実行されます。

( このクラスで拡張される )performLoginActionメソッドはサンプル・ログイン・フォームを表示します。ユーザーがフォームで資格証明を送信すると、CAS はこのメソッドに戻り、入力フィールドを処理します。このメソッドは、検証に必要な資格証明に応じて、ユーザーに割り当てられている資格証明が移入された UsernamePasswordCredentialsオブジェクトまたはSampleCredentialsオブジェクトを作成します。資格証明オブジェクトは(CAS で提供される )CAS コンテキストに挿入され、TGT がリクエストされます。TGT リクエストは資格証明オブジェクトの認証をトリガーします。認証が拒否された場合は、チケット例外が発生し、ログイン・フォームが再表示されます。認証が成功した場合は、Web フローの次のアクションが行われます。たとえば、チケットの取得、元のサービス URL(WebCenter Sites URL) へのチケットの追加、元のサービスへのリダイレクトが行われます。

このクラスには 2 つの認証メソッドがあります。一方はSampleCredentialsを使用して認証を処理し、もう一方は REST リクエストを処理します。いずれのメソッドも通常はユーザー名 / パスワードに基づきます。サンプルでは認証対象の新しい値として sampleDomain値が導入されています。この場合、performLoginActionメソッドは、ユーザーが入力したユーザー名、パスワードおよび sampleDomainの値をエンコードし、エンコードされた値を UsernamePasswordCredentialsオブジェクトに渡します。WEM のデフォルト認証ハンドラは sampleDomain値を検出し、その資格証明を authenticationRestメソッドに渡します。このメソッドはsampleDomain値を他の値からデコードし、適切なドメインが指定されているかどうかを確認します。値が間違っている場合は、認証に失敗します。値が正しい場合は、このメソッドがユーザー名とパスワードをエンコードして資格証明オブジェクトに戻し、WEM のデフォルト認証ハンドラがユーザー名とパスワードを検証します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 93: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行93

サンプル Spring 構成ファイル

サンプル SSO 実装のクラスとプロパティはサンプル Spring 構成ファイルcustomSampleSSObeans.xml(Misc/Samples/WEM Samples/CustomizableSSO/src/main/webapp/WEB-INF/spring-configuration) で定義されています。

この項の残りの部分では次のトピックについて説明します。

• サンプル Spring 構成ファイルの分析

• サンプル Spring 構成ファイルの配置

サンプル Spring 構成ファイルの分析サンプル Spring 構成ファイルには、デフォルト Spring 構成ファイルと同じBean 識別子が含まれています (85 ページの「Spring 構成ファイルの作成」を参照 )。ただし、サンプルのログイン動作を実装する場合は、プロパティ値を変更します。たとえば、customUserConfiguration Bean はSampleConfiguration.javaクラスを参照し、customUserAuthenticator Bean は SampleAuthenticator.javaクラスを参照します。

また、customUserConfiguration Bean には、サンプル SSO 実装にシステム情報を入力する構成プロパティを指定します。たとえば、SampleLoginForm.jspファイルには、ユーザーの資格証明を取得する際にサンプルで使用されるブラウザ・フォームが用意されているので、SampleConfiguration.javaクラスを拡張して sampleFormURLプロパティを含めます。このプロパティにはサンプルSSO 実装のログイン・ページの完全な URL を指定します。ドメイン名とポート番号は CAS サーバーのインストールと一致させます。パスは、設定時にこのページを配置した場所を指します。

次に、サンプル Spring 構成ファイルのコードを示します。このファイルで参照されるプロパティの詳細は、87 ページの「デフォルト Spring 構成ファイルの分析」を参照してください。

サンプル Spring 構成ファイル

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:flow="http://www.springframework.org/schema/webflow-config"

xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/webflow-config

http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">

<!-- Custom SSO Bean definitions. This file defines either the default CAS/SSO configuration or a special user implementation.No other CAS configuration files are modified for a custom implementation -->

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 94: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行94

<!-- This bean is never modified. It defines the web-flow controller which always passes control into the custom authenticator -->

<bean id="customUserLoginAction" class="com.fatwire.wem.sso.cas.web.CustomLoginViewAction"

p:centralAuthenticationService-ref="centralAuthenticationService"

p:customAuthentication-ref="customUserAuthenticator"

/>

<!-- This bean is usually not modified. Override it when there needs to be a custom encoding for information passed between the web-flow and any external component -->

<bean id="customRestCoder" class="com.fatwire.wem.sso.cas.custom.basis. CustomRestTokenCoding"

/>

<!-- Modify this bean with a custom configuration class when additional parameters are needed for a custom implementation -->

<bean id="customUserConfiguration" class="com.fatwire.wem.sso.cas.sample.SampleConfiguration"

p:casLoginUrl="http://localhost:7080/cas/login"p:resolverUrl="http://localhost:8080/cs/custom/

customCsResolver.jsp"p:resolverUsername="fwadmin"p:resolverPassword="xceladmin"p:traceFlag="false"p:sampleDomain="mydomain"p:sampleFormUrl="http://localhost:7080/cas/

SampleLoginForm.jsp"/>

<!-- Modify this bean with a customAuthentication class for a custom implementation. -->

<bean id="customUserAuthenticator" class="com.fatwire.wem.sso.cas.sample.SampleAuthenticator"

p:customConfiguration-ref="customUserConfiguration"

p:customRestCoder-ref="customRestCoder"

/>

</beans>

サンプル Spring 構成ファイルの配置サンプル・クラスをインスタンス化するには、サンプル Spring 構成ファイルをspring-configurationフォルダ (cas/WEB-INF) に配置して、デフォルトSpring 構成ファイルから .xml拡張子を削除します。詳細は、88 ページの

「Spring 構成ファイルの配置」を参照してください。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 95: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行95

サンプル CSSO コンポーネント

サンプル CSSO 実装のコンポーネントは /WEM Samples/CustomizableSSOフォルダにあります。サンプル CSSO 実装には次のフォルダが含まれます。

フォルダ 説明

Misc/Samples/WEM Samples/CustomizableSSO

customizable-sso-1.0.jarファイルが含まれます。この jar ファイルは、サンプルで実行可能なコードのクラスを提供します。サンプル SSO 実装をデプロイする際には、この jar ファイルをCAS クラスパス (cas/WEB-INF/libフォルダ ) に配置します。

Misc/Samples/WEM Samples/CustomizableSSO/lib

サンプル SSO 実装で Java ソース・ファイルをコンパイルする際に必要なサード・パーティのすべての jar ファイルが含まれます。

Misc/Samples/WEM Samples/CustomizableSSO/src/main/dist

個々のソース・コンポーネントおよびサンプル実装の操作について説明したWord ドキュメントが含まれます。

注意 : サンプルのソース・コードを参照する前に、これらのドキュメントを確認することをお薦めします。

Misc/Samples/WEM Samples/CustomizableSSO/src/main/java

Java ソース・ファイルのルート・フォルダです。

Misc/Samples/WEM Samples/CustomizableSSO/src/main/webapp/fatwire

SampleLoginForm.jspが含まれます。JSP は、ユーザーのログイン資格証明を取得する際にサンプルで使用されるブラウザ・フォームを提供します。サンプルを実装するには、CAS アプリケーション・コンテキスト・フォルダに fatwireフォルダを作成し、このフォルダに SampleLoginForm.jspをコピーする必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 96: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 8 章 Customizable Single Sign-On ファシリティ

CSSO サンプル実装の実行96

Misc/Samples/WEM Samples/CustomizableSSO/src/main/webapp/WEB-INF/spring-configuration

サンプル Spring 構成ファイルcustomSampleSSObeans.xmlが含まれます。このファイルにはサンプル SSO実装に必要な Spring Bean 定義を定義します。また、このファイルはspring-configurationフォルダ(cas/WEB-INF) に配置する必要があります。spring-configurationフォルダ内にあるファイル(customDefaultWEMSSObeans.xml) には .xml以外の拡張子を指定するか、拡張子を削除する必要があります。 注意 : customDefaultWEMSSObeans.xmlファイルのコピーを保存し、WEM の標準ログイン画面に戻す場合にコピーをリストアできるようにしておきます。

フォルダ 説明

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 97: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

97

第 9 章

バッファリング

• 概要

• アーキテクチャ

• バッファリングの使用

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 98: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 9 章 バッファリング

概要98

概要アセットの作成、更新、削除操作は読取り操作と比べるとはるかに低速です。場合によっては、これらの操作を遅延させて、 終的に一貫性が保証される形であとで操作が行われるようにすることも可能です。つまり、遅延 ( バッファ済 ) 操作を実行すると、有限で不確定な時間に WebCenter Sites プラットフォームが変更を受け取ることが保証されます。バッファリング操作はきわめて高速ですが、プラットフォームでのアセットの作成、更新、削除に必要な合計時間が短縮されるわけではありません。

アーキテクチャバッファリング・サブシステムの現在の実装は Java Messaging Service (JMS) テクノロジに依存しています。

バッファリングは次のコンポーネントで構成されます。

• バッファリング・プロデューサ。メッセージを作成し、それを Messaging Queue (MQ) に入れます。

• バッファリング・コンシューマ。MQ からメッセージを取得し、それをプラットフォームで維持します。

バッファリング・プロデューサは、アセットの REST サービス <BaseURI>/sites/<sitename>/types/<assettype>/assets/<id>が使用可能な場合は、

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 99: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 9 章 バッファリング

バッファリングの使用99

WebCenter Sites とリモート Satellite Server の両方で使用できます。リモートSatellite Server で使用する場合、バッファリング・プロデューサは WebCenter Sites との通信を行いません。その結果、システム全体の線形スケーラビリティが確保されます。

バッファリングの使用1. JMS プロバイダがまだインストールされていない場合はインストールしま

す。( サポート対象のプロバイダについては、Oracle WebCenter Sites 動作保証マトリックスを参照してください。

2. WebCenter Sites( およびオプションでリモート Satellite Server) でBufferingConfig.xmlを構成します。

3. REST アセット・サービス <BaseURI>/sites/ <sitename>/types/<assettype>/assets/<id>を起動する場合は、buffer=trueを指定します。

WebCenter Sites に用意されているデフォルトの BufferingConfig.xmlファイルには、Apache ActiveMQ のサンプル構成が含まれています。BufferingConfig.xmlファイルは、リモート Satellite Server のメッセージ・コ

注意

バッファリング・コンシューマは、WebCenter Sites のみで使用できます。バッファリング・コンシューマは、プライマリ・クラスタ・メンバーのみで有効にすることをお薦めします。複数のクラスタ・メンバーで有効にすると、CRUD 操作の順序が保証されません。

id="bufferingManager" class="com.fatwire.cs.core.buffering.jms.JmsBufferingManager"

プロパティ名 説明

jmsConnectionFactory 必須。 javax.jms.ConnectionFactoryのインスタンスです。

jmsDestination 必須。 javax.jms.Destinationのインスタンスです。

messageConsumers com.fatwire.cs.core.buffering.IMessageConsumer実装のリストです。

注意

バッファリングを使用すると、PUTおよび POST操作の結果がレスポンスで返りません。かわりに、空のペイロードが送信されます。開発者は、クライアント・アプリケーションをコーディングする際にこの動作を覚えておく必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 100: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

第 9 章 バッファリング

バッファリングの使用100

ンシューマのリストが空である点を除いて、WebCenter Sites とリモートSatellite Server で同じです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 101: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

101

付録 A

アプリケーションの手動登録

• 登録手順

• リファレンス : 登録アセット・タイプ

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 102: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

登録手順102

登録手順アプリケーションは登録することによって WEM フレームワークで公開されます (22 ページを参照 )。アプリケーションを手動で登録するには、WebCenter Sites Admin インタフェースを使用してアプリケーションのアセットを作成し、アセットの各ビューにアセットを作成して、ビュー・アセットをアプリケーション・アセットに関連付ける必要があります。登録アセット・タイプFW_Applicationおよび FW_Viewが AdminSite で有効化されます。

アプリケーションおよびビューを手動で登録するには :

この項では、「Articles」サンプル・アプリケーションのコードを使用して登録プロセスについて説明します。「Articles」には iframe タイプの単一のビューが含まれます。JavaScript および HTML のビューにも同じ手順が適用されます。

1. アプリケーションを表すアイコンを作成または取得します。( アプリケーション・バーにアイコンが表示されます。)

(「Articles」サンプル・アプリケーションは、次の場所にあるarticles.pngイメージ・ファイルを使用します。 /sample app/articles/src/main/webapp/images/)

2. アプリケーションのレイアウト ( つまり各ビュー ) を HTML で示すファイルを作成し、ビューでレンダリングされるコンテンツを保持するためのプレースホルダ・エレメントを作成します。50 ページの図 9 にアプリケーションとビューの関係を示します。

たとえば、「Articles」サンプル・アプリケーションの layout.jspには次の行が記述されています。

<div id="articles" style="float:left;height:100%;width:100%" class="wemholder"></div>

ビューのコンテンツは、アプリケーションが表示される際にプレースホルダ・エレメント内にレンダリングされます (layout.appがアプリケーションのレイアウトをレンダリングし、home.appがビューをレンダリングします )。

3. ビューおよびアプリケーションを登録します。

a. 一般管理者として WebCenter Sites Admin インタフェースにログインし、AdminSite に移動して「管理」タブをクリックします。このタブではFW_Viewおよび FW_Applicationアセット・タイプが有効になります。

( ここでは、ビューおよびアプリケーションのアセットを同一セッション内で作成することを想定しています。この場合、「履歴」タブに両方のアセットが一覧表示されます。アプリケーション・アセットの作成時に、

「履歴」タブからビュー・アセットを選択し、アプリケーション・アセットに関連付けます。「履歴」タブの情報は一時的なものであるため、ユー

注意

レイアウト・ファイルの作成時に、プレースホルダ・エレメントに一意の idを指定します。 ビュー・アセットを作成する際には、同じ idを親ノード属性に指定します。プレースホルダ・エレメントに class="wemholder"を使用します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 103: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

登録手順103

ザーのセッションの 後にクリアされます。アクティブ・リストタブではアセットを永続的に配置できます。手順については、『Oracle WebCenter Sites 管理者ガイド』を参照してください。)

b. 次のように、FW_Viewアセット・タイプのインスタンスを作成します。

「新規」をクリックして新規 FW_View を選択し、次の図に示すように属性を設定します。( 次の図には、「Articles」サンプル・アプリケーションのビュー・アセットの属性値が表示されています。)

名前 : このビュー・アセットの短くてわかりやすい名前を入力します。

親ノード : (102 ページの手順 2 で定義した ) プレースホルダ・エレメントの idを入力します。プレースホルダ・エレメントにはビューでレンダリングされたコンテンツが保持されます。

ビュー・タイプ : 次のいずれかのオプションを選択して、ビューのコンテンツをプレースホルダでレンダリングする方法を指定します。

- Iframe: プレースホルダ・エレメントに iframe のビューをレンダリングします。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 104: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

登録手順104

- IncludeHTML: プレースホルダ・エレメントに HTML をレンダリングします。

- IncludeJavaScript: プレースホルダ・エレメントに JavaScript をレンダリングします。

ソース URL: ビューのコンテンツを提供する URL を入力します。たとえば、「Articles」サンプル・アプリケーションの「ソース URL」の値は次のようになります :http://localhost:9080/articles-1.0/home.app

c. 次のように、FW_Applicationアセット・タイプのインスタンスを作成します。

「新規」をクリックして新規 FW_Application を選択し、次の図に示すように属性を設定します。( 次の図には、「Articles」サンプル・アプリケーションのアプリケーション・アセットの属性値が表示されています。)

名前 : このアプリケーション・アセットの短くてわかりやすい名前を入力します。

ツールチップ : ユーザーがアプリケーションのアイコンにマウスを重ねたときにアイコン上に表示されるテキストを入力します。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 105: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

リファレンス : 登録アセット・タイプ105

アイコン URL: アプリケーションを表すアイコンの URL を入力します。アイコンはログイン・ページおよび WEM インタフェースの上部に表示されます。たとえば、「Articles」サンプル・アプリケーションの「アイコン URL」の値は次のようになります : http://localhost:9080/articles-1.0/images/articles.png

ホバー・アイコンの URL: ユーザーがアイコンにマウスを重ねたときにそのアプリケーションを表すアイコンの URL を入力します。

クリック・アイコンの URL: ユーザーがアイコンをクリックしたときにそのアプリケーションを表すアイコンの URL を入力します。

アクティブ・アイコンの URL: このアプリケーションが使用中のときにアプリケーションを表すアイコンの URL を入力します。

レイアウト・タイプ : LayoutRenderer ( デフォルトかつ唯一の値 )。レイアウト・タイプは、( 次のレイアウト URL 属性で指定された ) アプリケーションのレイアウト・ページを使用してアプリケーションのビューをレンダリングする際に UI コンテナで使用されます。

レイアウト URL: アプリケーションのレイアウトを表示するページのURL を入力します。レイアウト・ページには、ビューを配置するためのHTML プレースホルダ・エレメント (div など ) のみが含まれます。

たとえば、「Articles」サンプル・アプリケーションのレイアウト URL の値は次のようになります : http://localhost:9080/articles-1.0/layout.app

(Spring MVC フレームワークで指定した http://.../layout.jspではありません。)

関連 : 関連付けられた FW_View: ビュー : 103 ページで作成したビュー・アセットを選択します (「履歴」タブをクリックしてビュー・アセットを選択し、「選択したアイテムの追加」をクリックします )。

リファレンス : 登録アセット・タイプ• FW_View アセット・タイプ

• FW_Application アセット・タイプ

FW_View アセット・タイプ

このアセット・タイプはアプリケーションのビューを登録する際に使用します。各ビューに対して FW_Viewのインスタンスを作成します。WebCenter Sites Admin インタフェースに表示される FW_Viewの属性は、次の一覧および Oracle WebCenter Sites:Web エクスペリエンス管理フレームワーク REST API Bean リファ

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 106: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

リファレンス : 登録アセット・タイプ106

レンスを参照してください。網掛け部分は必須属性であることを示しています。 このアセット・タイプは「AdminSite」という名前のサイトで有効になります。

表 A-1: FW_Viewアセット・タイプの属性

属性 :

説明

WebCenter Sites インタフェース REST API

名前 name このビュー・アセットの短くてわかりやすい名前です。

説明 description このビュー・アセットの説明です。

親ノード parentnode アプリケーションのレイアウト・ファイルにおけるプレースホルダ・エレメントの ID です。プレースホルダ・エレメントにはビューでレンダリングされるコンテンツが保持されます。レイアウト・ファイルには、ビューを配置するための HTML プレースホルダ・エレメント (divなど ) のみが含まれます。

ビュー・タイプ viewtype ビューをレンダリングする方法です。次のビュー・タイプを使用できます。

• Iframe: iframe のビューをプレースホルダ・エレメントにレンダリングします。

• IncludeHTML: プレースホルダ・エレメントに HTML をレンダリングします。

• IncludeJavaScript: プレースホルダ・エレメントにJavaScript をレンダリングします。

ソース URL sourceurl ビューのコンテンツを提供する URL です。

JavaScript javascriptcontent ビュー・タイプが IncludeJavaScriptで、「ソース URL」を指定しない場合は必須です。

ビュー・タイプで IncludeJavaScriptを指定した場合、この属性で指定した内容がスクリプト・タグに組み込まれます。 IncludeJavaScriptを指定した場合は、Source URLを指定するか、JavaScript属性でコードを指定する必要があります。

コンテンツ includecontent ビュー・タイプが IncludeHTMLで、「ソース URL」を指定しない場合は必須です。ビュー・タイプにIncludeHTMLを指定した場合は、この属性で指定したコンテンツがプレースホルダ・エレメント・タグに組み込まれます。IncludeHTMLを指定した場合は、Source URLを指定するか、Content属性でコードを指定する必要があります。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 107: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

リファレンス : 登録アセット・タイプ107

FW_Application アセット・タイプ

このアセット・タイプはアプリケーションを登録する際に使用します。このアセット・タイプは AdminSite で有効になります。WebCenter Sites Admin インタフェースに表示される FW_Applicationの属性は、次の一覧および Oracle WebCenter Sites:Web エクスペリエンス管理フレームワーク REST API Bean リファレンスを参照してください。網掛け部分は必須属性であることを示しています。

表 A-2: FW_Applicationアセット・タイプの属性

属性 :

説明

WebCenter Sites インタフェース REST API

名前 name このアプリケーション・アセットの短くてわかりやすい名前です。

説明 description このアプリケーション・アセットの説明です。

ツールチップ tooltip ユーザーがアプリケーションのアイコンにマウスを重ねたときにアイコン上に表示されるテキストです。

アイコン URL iconurl WEM フレームワークでこのアプリケーションを表すアイコンの URL です。

ホバー・アイコンの URL

iconurlhover ユーザーがアイコンにマウスを重ねたときにこのアプリケーションを表すアイコンの URL です。

クリック・アイコンのURL

clickiconurl ユーザーがアイコンをクリックしたときにこのアプリケーションを表すアイコンの URL です。

アクティブ・アイコンのURL

iconurlactive このアプリケーションが使用中のときにアプリケーションを表すアイコンの URL です。

レイアウト・タイプ

layouttype レイアウトのタイプ。値は LayoutRendererです。

レイアウト・タイプは、( 次のレイアウト URL 属性で指定された ) アプリケーションのレイアウト・ページを使用してアプリケーションのビューをレンダリングする際に使用されます。

レイアウトURL

layouturl アプリケーションのレイアウトが表示されるページの URL です。このページには、ビューを配置するための HTML プレースホルダ・エレメント (divなど ) のみが含まれます。

関連 : 関連付けられたFW_Application: 拡張

parentnode 現在のアプリケーションを拡張する親アプリケーションです。

関連 : 関連付けられたFW_View: ビュー

views このアプリケーションで使用されるビュー・アセットのリストです。

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド

Page 108: Oracle® WebCenter SitesOracle® WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド, 11g リリース1 (11.1.1) 部品番号: B69685-01 原本名:

付録 A アプリケーションの手動登録

リファレンス : 登録アセット・タイプ108

Oracle WebCenter Sites Web エクスペリエンス管理フレームワーク開発者ガイド