svnno****@sourc*****
svnno****@sourc*****
2008年 9月 12日 (金) 17:13:32 JST
Revision: 1161 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1161 Author: shinsuke Date: 2008-09-12 17:13:32 +0900 (Fri, 12 Sep 2008) Log Message: ----------- upated docs.. Modified Paths: -------------- pal-portal/docs/ja/configuration-guide/trunk/xdocs/navigation.xml Added Paths: ----------- pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/jetspeed-portlet.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/atn-arch-c.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/credential-handler-c.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/default-login-module-c.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/loginprocess.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/principals-credentials-schema.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/rdbms-policy-overview-c.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/security-arch-overview.gif pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portal.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portlet.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/guide.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/profilingrule.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/guide.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/menu.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/security.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/config.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/credential.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/guide.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/login.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/portlet.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/userattribute/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/userattribute/guide.xml Removed Paths: ------------- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-menus-declarative-psml.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-profiler.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-psml.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-security-declarative-psml.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-simple-portlet.xml pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-user-attributes.xml -------------- next part -------------- Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/jetspeed-portlet.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/jetspeed-portlet.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/jetspeed-portlet.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>Appendix</title> + <subtitle>jetspeed-portlet.xsd</subtitle> + <authors> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="jetspeed-portlet.xsd"> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" + targetNamespace="http://portals.apache.org/jetspeed" + xmlns:tns="http://portals.apache.org/jetspeed" + xmlns:dc="http://www.purl.org/dc" + xmlns:js="http://portals.apache.org/jetspeed" + xmlns:p="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> + + <xs:import namespace="http://www.purl.org/dc" schemaLocation="dublin-core.xsd"/> + <xs:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + + <xs:element name="portlet-app"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element name="security-constraint-ref" minOccurs="0" type="xs:string"/> + <xs:group ref="tns:metadataGroup" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="tns:custom-portlet-mode" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="tns:custom-window-state" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="tns:portlet" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="tns:services" minOccurs="0"/> + <xs:element ref="tns:user-attribute-ref" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"/> + <xs:attribute name="version" type="xs:string"/> + </xs:complexType> + </xs:element> + + <xs:element name="portlet"> + <xs:complexType> + <xs:sequence> + <xs:element name="portlet-name" type="xs:string"/> + <xs:element name="security-constraint-ref" minOccurs="0" type="xs:string"/> + <xs:group ref="tns:metadataGroup" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="id" type="xs:ID" use="optional"/> + </xs:complexType> + </xs:element> + + <xs:element name="custom-portlet-mode"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mapped-name" type="xs:string"/> + <xs:element name="description" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="custom-window-state"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mapped-name" type="xs:string"/> + <xs:element name="description" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="user-attribute-ref"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="name-link" type="xs:string"/> + <xs:element name="description" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="metadata"> + <xs:complexType mixed="true"> + <xs:attribute name="name" use="required" type="xs:string"/> + <xs:attribute ref="xml:lang"/> + </xs:complexType> + </xs:element> + <xs:element name="services"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="js:service"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="service"> + <xs:complexType> + <xs:attribute name="name" use="required" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:group name="metadataGroup"> + <xs:choice> + <xs:element ref="dc:creator"/> + <xs:element ref="dc:description"/> + <xs:element ref="dc:title"/> + <xs:element ref="dc:type"/> + <xs:element ref="dc:source"/> + <xs:element ref="dc:right"/> + + <xs:element ref="dc:relation"/> + <xs:element ref="dc:publisher"/> + <xs:element ref="dc:language"/> + <xs:element ref="dc:identifer"/> + <xs:element ref="dc:format"/> + <xs:element ref="dc:contributor"/> + <xs:element ref="dc:coverage"/> + <xs:element ref="dc:subject"/> + <xs:element ref="js:metadata"/> + </xs:choice> + </xs:group> +</xs:schema> +]]></source> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/appendix/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-menus-declarative-psml.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-menus-declarative-psml.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-menus-declarative-psml.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,414 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright 2005 The Apache Software Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<document> - <properties> - <title>PSML でのメニューの宣言ガイド</title> - <subtitle>PSML でのメニューの宣言ガイド</subtitle> - <authors> - <person name="Randy Watler" email="rwatl****@apach*****"/> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> -<section name=" メニューの宣言"> -<p> -メニューの宣言は、表示されているポータルページに新しいナビゲーション要素を追加したり、デフォルトのものをカスタマイズしたりするために使われます。これらの PSML 宣言は、<a href="guide-psml.html#Page">ページ</a> 要素と <a href="guide-psml.html#Folder">フォルダ</a> 要素の一部分です。他の PSML 要素と同様に、メニュー宣言は、親フォルダで定義された全てに加えて、ページ内で明示的に定義されるものが有効となります。このため、グローバルなサイトのメニューは、サイトのルートフォルダに関連づけられている PSML ファイル内で定義されます。特定のページやフォルダのメニューの定義は、親フォルダで定義されている同じ名前のメニューを上書きします。 -</p> -<p> -ポータルのレイアウトデコレータは、ポータルのコンテンツを描画しているときに、名前でページメニューの宣言にアクセスします。メニューは、動的なナビゲーションペインや、ポータルページのタブや、パンくずリスト (訳注:よくページ上部に表示されるような、現在のページのウェブサイト内での階層構造をリストアップしたもの。例えば「ホーム > 商品 > デジタルカメラ」のように、どういうルートをたどって今のページに至ったかを示す。) や、プルダウンメニューを作成するのに使われます。ポータルサイトコンポーネントは、サイトのページ固有の PSML エレメントを持つ動的なメニュー定義の選択肢を実際に形成することを担当しています。例えば、グローバルなメニュー定義は、一般的に、ポータルページが構成されている間、次のような順序でイベントに関係します。 -<ol> - <li>ポータルレイアウトデコレータは、名前でメニュー定義の要求を行います。</li> - <li>定義は、現在のページに継承され、ルートフォルダの PSML に設定されます。</li> - <li>ポータルサイトコンポーネントは、現在のページのコンテキスト内のメニュー定義を解釈し、<a href="guide-psml.html#Page">ページ</a>や<a href="guide-psml.html#Folder">フォルダ</a>やメニューの選択肢の<a href="guide-psml.html#Link">リンク</a>を設置します。</li> - <li>デコレータは、メニュー定義自身と算出されたメニューの選択肢を元に、ポータルのナビゲーションコンテンツにタイトルとテキストを描画し、メニューを表示します。</li> -</ol> -</p> -<p> -ポータルサイトコンポーネントによって、内部的にサポートされた共通のメニュー定義が存在し、サイトのページやフォルダの PSML 要素に明示的には定義の必要がありません。 -<ul> - <li><b>pages</b>: ポータル上のページタブを定義するのに使われる、相対的なページメニュー。</li> - <li><b>bredcrumbs</b>: ページタブ以下にリンクの履歴を提供するのに使われる、ページへのパス。</li> - <li><b>navigations</b>: ポータルの横のナビゲーションパネルを定義するのに使われる、相対サブフォルダとルートレベルのリンクメニュー</li> - <li><b>back</b>: ポータルページタブ上の、以前のページへ 1 つ戻るためのリンクを定義するのに使われる、親フォルダのメニュー。</li> -</ul> -メニュー定義内で構築されるこれらは、期待どおり、サイトの PSML 内で同じ名前で宣言されるメニューに上書きされます。 -</p> -<p> -<ul> - <li><a href="#Menu_Definition">メニューの定義</a></li> - <ul> - <li><a href="#Menu_Options_Definition">メニューの選択肢の定義</a></li> - <li><a href="#Menu_Separator_Definition">メニューのセパレータの定義</a></li> - <li><a href="#Menu_Include_Definition">メニューのインクルードの定義</a></li> - <li><a href="#Menu_Exclude_Definition">メニューの除外の定義</a></li> - </ul> - <li><a href="#Page_Layout_Decorators">ページレイアウトデコレータ</a></li> - <li><a href="#Portal_Site_Component">ポータルサイトコンポーネント</a></li> -</ul> -</p> -</section> - -<section name=' メニューの定義'> -<p> -<menu> 要素は、レイアウトデコレータもしくは他のメニュー内の階層化されたメニューによって使われるメニューを定義します。menu 要素には、たくさんの有効な属性が存在します。 -</p> -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>name</td> - <td>テンプレートコードおよび(または)メニュー参照からの検索のためのメニュー名を指定します。この属性は、トップレベルのノードで必須で、階層化されたメニューでは無視されます。</td> - </tr> - <tr> - <td>options</td> - <td>メニューの指定に、ドキュメントとフォルダの深い階層が存在する場合、メニューのためのルートドキュメントのパスを指定します。この属性は、ページ、フォルダ、メニューの選択肢のリンクの指定を行うドキュメントパスも定義します。カンマで区切ったパスおよび (または) 正規表現のパターンを、複数のオプションパスとして指定可能です。相対パスは、現在のページからの相対パスとして解釈されます。「~」や「@」といった特別なパターンを、現在のページを参照するために使うことができます。</td> - </tr> - <tr> - <td>depth</td> - <td>オプションフォルダからのドキュメントの深さを指定します (0 以下の深さの指定は無限大を表す)。メニューの選択肢は、それぞれの可視ページを表示するか、サイトへのリンクを行うために作成されます。フォルダはこの設定によって階層化したメニューに変換されます。</td> - </tr> - <tr> - <td>paths</td> - <td>ルートフォルダから指定された選択肢への順序付きのパスオプションを含むかどうかを指定する真偽値。この設定は「履歴」もしくは「パンくずリスト」メニューを生成するのに使います。</td> - </tr> - <tr> - <td>regexp</td> - <td>選択肢の値としてワイルドカードや正規表現が使われるかどうかを指定する真偽属性。ファイルシステムのコマンドラインの正規表現をサポートします。</td> - </tr> - <tr> - <td>profile</td> - <td>オプションの値を評価する際に使われるプロファイルロケータの名前を指定します。この属性は、オプションと階層化したメニューのためのデフォルトのプロファイルの値も設定します。「*」の指定は、全てのプロファイルロケータの名前を受け入れます。これは、親メニューが選択したプロファイル名を上書きするのに使うことができます。</td> - </tr> - <tr> - <td>order</td> - <td>マッチする選択肢の順序を判断するための、カンマで区切られたマッチするパターンの正規表現のリスト、もしくは正規表現のドキュメントパスの値。この属性は、どの選択肢の要素に対してもデフォルトの選択肢の値として適用されます。しかし、複数の選択肢の子供へのマッチを再度順序づけることはありません。もし指定されない場合、複数の選択肢は、含まれるフォルダドキュメントのものとして返される順序に含まれます。この属性にマッチしない選択肢のパスは、順序づけられたものの後に追加されます。</td> - </tr> - <tr> - <td>skin</td> - <td>メニューのためのレイアウトのヒントを定義する省略可能なデコレータ。この属性は、選択肢や階層化したメニューのデフォルトスキンの値としても使われます。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> - </tr> -</table> -<p> -<menu> 要素は、多数の他のメニュー定義の PSML 要素を含みます。タイトルとメタデータ要素を除いて、これらの要素の相対的な順序は、レイアウトデコレータがそれらを提示する順序を決定します。 -</p> -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>title?</td> - <td>メニュー用のデフォルトのロケール非依存なタイトルを指定する単純な要素。メニューのタイトルは、その長い記述とみなされます。そして、もしメニュー用の短いタイトルが利用可能である場合、デコレータによってはロールオーバー用のテキストとして使う場合があります。もし指定されない場合、メニューの名前が使われます。</td> - </tr> - <tr> - <td>short-title?</td> - <td>メニュー用のデフォルトのロケール非依存な短いタイトル。短いタイトルは、もし利用可能である場合、デコレータによってはメニューのテキストとして使う場合があります。もし指定されない場合、タイトルのテキストが使われます。</td> - </tr> - <tr> - <td><a href="guide-psml.html#PSML_Titles_and_Metadata">metadata</a>*</td> - <td>追加のロケール特有のタイトルと短いタイトルを指定します(省略可)。</td> - </tr> - <tr> - <td><a href="#Menu_Options_Definition">options</a>*</td> - <td>この順序付きのメニュー要素は、このメニュー定義のためのコンテンツ要素を指定します。</td> - </tr> - <tr> - <td><a href="#Menu_Separator_Definition">separator</a>*</td> - <td>このメニュー定義内で、インラインで含まれるテキスト行を指定するために使われる、順序付きのメニュー要素。</td> - </tr> - <tr> - <td>menu*</td> - <td>このメニュー定義に含まれる、階層化されたメニューを定義するのに使われる、他の順序付きメニュー要素。</td> - </tr> - <tr> - <td><a href="#Menu_Include_Definition">include</a>*</td> - <td>このメニュー定義に含める、他のメニューの階層化したメニュー、もしくは選択肢を指定します。含めるメニューの名前はこの順序付きのメニュー要素のテキストです。</td> - </tr> - <tr> - <td><a href="#Menu_Exclude_Definition">exclude</a>*</td> - <td>このメニュー定義から除外する、他のメニューの選択肢と階層化したメニューを指定します。除外するための要素に含まれるメニューの名前は、この順序付きのメニュー要素のテキストです。</td> - </tr> -</table> -<p>例:</p> -<source><![CDATA[ -<menu name="simple"> - <options>/some-top-page.psml,/custom/some-other-page.psml</options> -</menu> -]]></source> -<source><![CDATA[ -<menu name="top-2-levels" options="/" depth="2" skin="dhtml-pull-down"/> -]]></source> -<source><![CDATA[ -<menu name="top-role-pages" regexp="true" options="/*" profile="roles"/> -]]></source> -<source><![CDATA[ -<menu name="top-custom"> - <title>Top Menu</title> - <metadata name="title" xml:lang="fr">Haut</metadata> - <options regexp="true" profile="groups">/group-pages/*</options> - <menu options="/" profile="page"> - <separator> - <text>-- Top Pages --</text> - <title>Top Pages</title> - </separator> - <options regexp="true">/*</options> - <separator> - <title>Custom Pages</title> - </separator> - <options depth="2">/custom-folder/</options> - </menu> - <exclude>top-role-pages</exclude> - <separator>More Top Pages</separator> - <include nest="true">top-role-pages</include> -</menu> -]]></source> -<p>デフォルトの共通メニュー宣言のための定義は、内部的にポータルサイトコンポーネントによってサポートされます。 -</p> -<source><![CDATA[ -<menu name="pages" regexp="true" options="*.psml"/> -]]></source> -<source><![CDATA[ -<menu name="breadcrumbs" options="~" paths="true"/> -]]></source> -<source><![CDATA[ -<menu name="navigations"> - <separator>Folders</separator> - <options regexp="true">./*/</options> - <include>page-navigations</include> - <separator>Additional Links</separator> - <options regexp="true">/*.link</options> -</menu> -]]></source> -<source><![CDATA[ -<menu name="back" options="../"/> -]]></source> -<p>これらの定義のセパレータのテキストは、内部的に変換されることに注意してください。</p> -</section> - -<section name=' メニューの選択肢の定義'> -<p> -<options> 要素は、<a href="#Menu_Definition">メニュー</a>内に単一または複数の選択肢を定義します。この単純な要素の文字列は、ページ、もしくはフォルダ、もしくはリンクのメニューの選択肢を作るドキュメントのパスを指定します。複数の選択肢のパスを、パスおよび (もしくは) 正規表現パターンをカンマで区切ったリストとして指定することも可能です。相対パスは、現在のページからの相対パスとして解釈されます。「~」や「@」といった特別なパターンを、現在のページを参照するために使うことができます。この要素は、メニュー要素とたくさんの属性を共有します。 -</p> -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>depth</td> - <td>選択肢のフォルダからのドキュメントの深さを指定します (0 以下の深さは無限大を表します)。メニューの選択肢は、サイトへのそれぞれの可視ページまたはリンクを表示するように作成されます。フォルダは、この設定によって階層化したメニューに変換されます。</td> - </tr> - <tr> - <td>paths</td> - <td>ルートフォルダから指定された選択肢への順序付きのパスの選択肢を含むかどうかを指定する真偽値。この設定は「履歴」もしくは「パンくずリスト」メニューを生成するのに使います。</td> - </tr> - <tr> - <td>regexp</td> - <td>選択肢の値としてワイルドカードや正規表現が使われるかどうかを指定する真偽属性。ファイルシステムのコマンドラインの正規表現をサポートします。</td> - </tr> - <tr> - <td>profile</td> - <td>選択肢の値を評価する際に使われるプロファイルロケータの名前を指定します。この属性は、選択肢と階層化したメニューのためのデフォルトのプロファイルの値も設定します。「*」の指定は、全てのプロファイルロケータの名前を受け入れます。これは、親メニューが選択したプロファイル名を上書きするのに使うことができます。</td> - </tr> - <tr> - <td>order</td> - <td>マッチする選択肢の順序を判断するための、カンマで区切られたマッチするパターンの正規表現のリスト、もしくは正規表現のドキュメントパスの値。この属性は、どの選択肢の要素に対してもデフォルトの選択肢の値として適用されます。しかし、複数の選択肢の子供へのマッチを再度順序づけることはありません。もし指定されない場合、複数の選択肢は、含まれるフォルダドキュメントの順番で返される順序に含まれます。この属性にマッチしない選択肢のパスは、順序づけられたものの後に追加されます。</td> - </tr> - <tr> - <td>skin</td> - <td>メニューの選択肢のレイアウトのヒントを定義するデコレータ(省略可)。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> - </tr> -</table> -<p>例:</p> -<menu> - ... - <options regexp="true" order="*.psml,*.link">/some-top-page.psml,/custom/some-other-page.psml,/*.link</options> - ... -</menu> -</section> - -<section name=' メニューのセパレータの定義'> -<p> -<separator> 要素は、<a href="#Menu_Definition">メニュー</a> に含めるセパレータを定義します。セパレータは、<a href="#Menu_Options_Definition">選択肢</a> もしくは階層化したメニューが、メニューの定義内のこの要素以下に現れた場合のみ含まれます。セパレータのテキストは、この要素内のテキスト、もしくはテキストメニュー定義の要素内で指定することが可能です。セパレータ要素に記述可能な属性は 1 つしかありません。 -</p> -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>skin</td> - <td>メニューセパレータのレイアウトのヒントを定義する省略可能なデコレータ。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> - </tr> -</table> -<p> -<separator> 要素は、たくさんの他のメニュー定義の PSML 要素を含みます。 -</p> -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>title?</td> - <td>メニュー用のデフォルトのロケール非依存なタイトルを指定する単純な要素。セパレータのタイトルは、その長い記述とみなされます。そして、もしセパレータのテキストが利用可能である場合、デコレータによってはロールオーバー用のテキストとして使う場合があります。</td> - </tr> - <tr> - <td>text?</td> - <td>メニュー用のデフォルトのロケール非依存なテキストを指定する単純な要素。セパレータのテキストは必須で、この属性によって指定されようと、セパレータ要素内のテキストとして指定されようと、レイアウトデコレータがメニュー内に挿入するためのテキストとなります。</td> - </tr> - <tr> - <td><a href="guide-psml.html#PSML_Titles_and_Metadata">metadata</a>*</td> - <td>ロケール特有の追加のタイトルとセパレータテキスト(省略可)。</td> - </tr> -</table> -<p>例:</p> -<source><![CDATA[ -<menu> - ... - <separator>-------------</separator> - ... - <separator> - <text>-- Top 10 Pages --</text> - <metadata name="text" xml:lang="fr">Haut Pages</metadata> - <title>Top 10 pages as voted by the PALポータルusers!</title> - </separator> - ... -</menu> -]]></source> -</section> - -<section name=' メニューをインクルードするための定義'> -<p> -<include> 要素は、<a href="#Menu_Options_Definition">選択肢</a> または、他のメニューの階層化した <a href="#Menu_Definition">メニュー</a> を含みます。含めるメニューの名前は、このエレメントのテキスト値として指定します。この要素に含めることのできる有効な属性は 1 つしかありません。 -</p> -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>nest</td> - <td>指定したメニューが、階層化するためのものかどうかを制御する真偽値。もしこの属性に 'true' が指定された場合、含めるメニューはサブメニューとして階層化されます。そうでないのなら、全ての選択肢と指定したメニューの階層化したメニューは、このメニュー内にインラインで挿入されます。</td> - </tr> -</table> -<p>例:</p> -<source><![CDATA[ -<menu> - ... - <include nest="true">navigations</include> - ... -</menu> -]]></source> -</section> - -<section name=' メニューの除外を行うための定義'> -<p> -<exclude> 要素は、<a href="#Menu_Options_Definition">選択肢</a> もしくは、他のメニューの階層化した <a href="#Menu_Definition">メニュー</a> を除外します。このオプションは主に、このメニューから、ポータルページ内の、他のメニューに既に表示されているメニューの選択肢を消去するために使われます。一致する選択肢またはメニューがメニュー定義内のこの要素より上に表示されている場合は、除外されます。除外するメニューの名前は、この単純な要素のテキスト値として指定します。 -</p> -<p>例:</p> -<source><![CDATA[ -<menu> - ... - <exclude>pages</exclude> - ... -</menu> -]]></source> -</section> - -<section name=' ページレイアウトデコレータ'> -<p> -ページレイアウトデコレータは、ページが PALポータルパイプラインで描画されるとき、ポータルサイトコンポーネントからメニューを要求します。デコレータは、メニューが PSML で定義されることを期待します。カスタムメニューがポータルに表示される前に、デコレータは、カスタムメニューの描画を変更する必要があります。以下に、Velocity レイアウトデコレータの header.vm ファイルから抜き出した例を示します。 -</p> -<source><![CDATA[ -... -#set($pagesStandardMenu = $site.getMenu("pages")) -#if(!$pagesStandardMenu.empty) - <div class="tabs"> -#includeTabsNavigation($pagesStandardMenu $LEFT_TO_RIGHT) - </div> -#end -... -]]></source> -<p> -このコードは、ポータルページ内の標準的なページのタブメニューを描画します。ポータルサイトコンポーネントは Velocity のコンテキスト変数 <i>$site</i> として表れます。空のメニュー定義のための判断は、空のメニューがページコンテンツ内に描画されないことを保証するために設計されています。最後に、デコレータマクロが、メニューコンテンツを展開するために実行されます。一般に、再帰的なマクロの起動で階層化したメニューを描画することをサポートするために、このアプローチを取ります。この場合、デコレータはページオプションだけを期待します。以下に、ページのタブメニューを描画するのに使われるマクロ実装を示します。 -</p> -<source><![CDATA[ -#macro (includeTabsNavigation $_menu $_orientation) - <table border="0" cellpadding="0" cellspacing="0"> - <tr> - #foreach($element in $_menu.elements.iterator()) - #if($element.elementType == "option") - #set($tabTitle = $element.getTitle($preferedLocale)) - #set($tabName = $element.getShortTitle($preferedLocale)) - #if($_orientation == $LEFT_TO_RIGHT) - #if($element.isSelected($site)) - <td class="LTabLeft" nowrap="true"> </td> - <td class="LTab" align="center" valign="middle" nowrap="true" title="$!tabTitle">${tabName}</td> - <td class="LTabRight" nowrap="true"> </td> - #else - #set($tabUrl = $jetspeed.getAbsoluteUrl($element.url)) - <td class="LTabLeftLow" nowrap="true"> </td> - <td class="LTabLow" align="center" valign="middle" nowrap="true" title="$!tabTitle"><a href="$tabUrl">${tabName}</a></td> - <td class="LTabRightLow" nowrap="true"> </td> - #end - #end - #end - #end - </tr> - </table> -#end -]]></source> -<p> -このマクロは、ポータルサイトコンポーネントによって提供される、処理されたページメニューの選択肢全てに渡って反復されます。これは、表示されるタブそれぞれを作るための HTML 要素のテーブルデータを描画します。メニュー全体は、単一の行の HTML テーブルとして描画されます。 -</p> -<p> -ポータルサイトコンポーネントオブジェクトがレイアウトデコーレータに表示する、宣言型のメニューは、<a href="../multiproject/jetspeed-api/apidocs/index.html">PALポータルAPI</a> の文書に記述されます。以下に、このインタフェースを作るためのプライマリのインタフェースのリストを以下に挙げます。 -<ul> - <li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/Menu.html">org.apache.jetspeed.portalsite.Menu</a></li> - <li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuElement.html">org.apache.jetspeed.portalsite.MenuElement</a></li> - <li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuOption.html">org.apache.jetspeed.portalsite.MenuOption</a></li> - <li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuSeparator.html">org.apache.jetspeed.portalsite.MenuSeparator</a></li> - <li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/PortalSiteRequestContext.html">org.apache.jetspeed.portalsite.PortalSiteRequestContext</a></li> -</ul> -更に情報が欲しい場合は、これらのインタフェースの <a href="../multiproject/jetspeed-api/apidocs/index.html">javadoc</a> とサンプルの Velocity デコレータを参照してください。 -</p> -<p> -PALポータルは、タブや階層化したサブメニューを持つナビゲーションペインや、閲覧履歴のパンくずリストリンクや、階層化したプルダウンメニューの DHTML JSCookMenu を描画する宣言型のメニュー要素を含んだ、多くのサンプルのデコレータを提供しています。 -</p> -</section> - -<section name=' ポータルサイトコンポーネント'> -<p> -PALポータルのポータルサイトコンポーネントには、 2 つの密接に関係した役割があります。 -<ol> - <li>ユーザからのポータルのリクエスト URL を、サイト内の PSML <a href="guide-psml.html#Page">ページ</a> もしくは <a href="guide-psml.html#Folder">フォルダ</a> 要素にマップします。そして、</li> - <li>サイトでユーザが利用可能なものを反映した、サイトのナビゲーションメニューと、メニューの選択肢を構築します。</li> -</ol> -一見、これらの機能は、<a href="guide-psml.html">PSML サイト定義</a> を検索し、走査するだけの、比較的シンプルなものであるように見えます。しかし、一度 <a href="guide-profiler.html">プロファイラ</a> の集約と<a href="guide-security-declarative-psml.html">セキュリティ制約</a> のフィルタリングの複雑さが採り入れられると、マッピングはもはや単純ではなくなります。 -</p> -<p> -メニューの選択肢は、PSML サイトのポータルサイトコンポーネントがマッチさせるビューと一致していることに注意することが重要です。メニュー要素の指定するドキュメントのパスは、PSML フォルダやページを指し示すために使われる物理パスではありません。代わりに、ポータルリクエストを反映するパスは、メニューの選択肢として含める PSML 要素を選択するのに使われます。このように、プロファイリングとセキュリティは、あたかも実行中のリクエスト URL を逆にマップするかのように、メニューの選択肢の集団に自動的に含まれます。 -</p> -</section> - -</body> -</document> Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-profiler.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-profiler.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-profiler.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,181 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright 2004 The Apache Software Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<document> - <properties> - <title> プロファイラ</title> - <subtitle> PALポータルのプロファイラに関する文書</subtitle> - <authors> - <person name="David Sean Taylor" email="taylo****@apach*****"/> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> -<section name=" プロファイラの概要"> - -<p> -PALポータルのプロファイラは、ポータルのリソースの場所に関するルールベースのエンジンです。PALポータルのバージョン 2.0 では、プロファイラは以下のような種類のポータルリソースの場所を決定します。 -<ul> - <li>PSML ページ</li> - <li>フォルダ</li> - <li>メニュー</li> -</ul> -リクエストがポータルで受信されたとき、プロファイラは、実行時パラメータや状態 (リクエストパラメータ、HTTP ヘッダ、セッションの属性など) の正規化された値に基づき、リクエストをリソースと結びつけます。プロファイラはプロファイラバルブ内の PALポータルのリクエスト処理パイプラインの中で呼び出されます。このバルブは、リクエストコンテキストが、既にポータルのリクエストやレスポンス、機能、言語、ユーザ情報と関連づけられている必要があります。実行時のパラメータは、プロファイラがポータルのリソースを位置を決定するのに使われる判断規準を作ります。 -</p> - -<p> -プロファイラはサイトマネージャとページマネージャコンポーネントと協調して動作します。プロファイラは実行時情報を入力として受け取り、その情報を一般化・・・(原文が文の途中で終わっています。原文作者によると、ここで力尽きた、とのことです)。 -</p> -</section> -<section name="プロファイリングルール"> - -<p> -プロファイリングルールは、特定のリソースの場所を解決するリクエストを評価するときに使われる判断規準のリストを定義します。プロファイリングルールはプロファイラが使用します。これは、既知のポートレットリクエストデータ用の、細分化した判断規準によるポータルリソースの位置を決定するためです。ルールは与えられた順序に適用される判断規準の順序つきのリストから構成されます。このルールの順序に従って、プロファイリングエンジンは、最少のリソースの判断規準とみなせるまで、少ない記述の設定によるアルゴリズムで、それぞれのルールの判断規準を適用します。全ての条件が適用されつくした場合、ルールは失敗となりフォールバックリソースが要求されます。 -</p> -<subsection name=' ルール規準'> - -<p> -ルール規準はプロファイルのプロパティの場所を示すためのテンプレートです。デフォルトの実装では、リソースを特定する URL、Mimeタイプ、言語の設定に基づく案で定義されたプロファイリングポリシを持っています。もっと複雑な実装を行うには、Cookie や IP アドレスの範囲や統計的なリソースの利用解析やサーブレットや EJB 内部のビジネスのルールのような、リソースとマッピングされる他の入力が必要となるでしょう。 -</p> -</subsection> -<subsection name=' ルール規準のリゾルバ'> -<p> - - -<table> - <tr> - <th>リゾルバ</th> - <th>説明</th> - <th>例</th> - </tr> - <tr> - <td>request</td> - <td>リクエストパラメータ名とのマッチングによる解決</td> - <td></td> - </tr> - <tr> - <td>session</td> - <td>セッションの属性名とのマッチングによる解決</td> - <td></td> - </tr> - <tr> - <td>request.session</td> - <td>最初にリクエストの属性名とのマッチングを行ってから、セッションの属性名とのマッチングを行って解決する</td> - <td></td> - </tr> - <tr> - <td>hard.coded</td> - <td>ハードコードされた値による解決</td> - <td></td> - </tr> - <tr> - <td>group.role.user</td> - <td>フォールバックコントローラ: 現在のユーザグループ、次にロール、次にユーザの所有するフォルダ以下のリソースを探す</td> - <td></td> - </tr> - <tr> - <td>user</td> - <td>現在のユーザのディレクトリ内のリソースとマッチさせる</td> - <td></td> - </tr> - <tr> - <td>group</td> - <td></td> - <td></td> - </tr> - <tr> - <td>role</td> - <td></td> - <td></td> - </tr> - <tr> - <td>mediatype</td> - <td>リクエストコンテキスト内のメディアタイプとマッチさせる</td> - <td></td> - </tr> - <tr> - <td>country</td> - <td></td> - <td></td> - </tr> - <tr> - <td>user.agent</td> - <td></td> - <td></td> - </tr> - <tr> - <td>language</td> - <td></td> - <td></td> - </tr> - <tr> - <td>roles</td> - <td>ロールのフォールバック</td> - <td></td> - </tr> - <tr> - <td>path</td> - <td></td> - <td></td> - </tr> - <tr> - <td>page</td> - <td></td> - <td></td> - </tr> - <tr> - <td>path.session</td> - <td></td> - <td></td> - </tr> - <tr> - <td>user.attribute</td> - <td></td> - <td></td> - </tr> - <tr> - <td>navigation</td> - <td>現在のナビゲーションパスを変える</td> - <td></td> - </tr> - -</table> - -</p> -</subsection> -<subsection name=' プリンシパルルール'> -</subsection> -</section> -<section name=" プロファイルロケータ"> - -<p> -プロファイルロケータはポータルリソースの位置を決めるのに使われます。ポータルリソースとはページやドキュメントやフラグメントのようなもののことです。ロケータには位置が決められた実際のリソースについて記述されたプロパティが含まれます。ロケータは普通はユーザや他の対象のプロファイルに関係するプロパティに基づいているので、プロファイルロケータとして参照されます。 -</p> -<subsection name=' プロファイルロケータパス'> -<p> -</p> -</subsection> -</section> -<section name=" コンポーネントの設定"> -<p> -</p> -</section> - -</body> -</document> - Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-psml.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-psml.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-psml.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,767 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright 2004-2005 The Apache Software Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<document> - <properties> - <title>PSML</title> - <subtitle>Documentation for Designers working with PSML</subtitle> - <authors> - <person name="David Sean Taylor" email="taylo****@apach*****"/> - <person name="Randy Watler" email="rwatl****@apach*****"/> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> -<section name=" PSML"> -<ul> - <li><a href="#Page">ページ</a></li> - <ul> - <li><a href="#Defaults">デフォルト</a></li> - <li><a href="#Layout_Fragments">ページフラグメント</a></li> - <li><a href="#Portlet_Fragments">ポートレットフラグメント</a></li> - <li><a href="#Fragment_Properties">フラグメントプロパティ</a></li> - <li><a href="#Preferences">ポートレットプリファレンス</a></li> - </ul> - <li><a href="#Folder">フォルダ</a></li> - <li><a href="#Link">リンク</a></li> - <li><a href="#Global_Page_Security">大域的なページセキュリティ</a></li> - <li><a href="#PSML_Titles_and_Metadata">タイトルとメタデータ</a></li> - <li><a href="#PSML_Security_Constraints">セキュリティ制限</a></li> - <li><a href="#PSML_Menus">メニュー</a></li> -</ul> - -<p> -PSML は Portal Structure Markup Language の頭文字を取った物です。PSML は PALポータル内のコンテンツの構造化と抽象化を行うために作成されます。PSML はポータルページ上でポートレットがどのように集約され、レイアウトされ、装飾されるかを定義します。ページレイアウトは、Java ポートレット標準 API の守備範囲ではないことに注意してください。ですので、PSML は PALポータル特有の実装です。そして、PALポータルの PSML は Apache Portals Jetspeed version 1.x の PSML とも違うことに注意してください。このドキュメントは PSML リソースの要素のリファレンスガイドとして使えます。 -</p> -<p> -PSML ファイルは、ページ、フォルダ、リンクや大域的なセキュリティ制限と関係する他のポータルサイトの情報も保持します。これらの主要な PSML の要素のそれぞれは、ファイルシステム上のディレクトリ構造内に配置された別々のドキュメント内に保存されます。一般的に、このディレクトリは PALポータルウェブアプリケーション内の /WEB-INF/pages にあるリソースとしてアクセスされます。 -</p> - -<p> -以下にポータルサイトの <a href="#Page">ページ</a> 用の PSML ファイル (*.psml) の例を示します。 -</p> - -<source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<page> - <!-- ページの情報 --> - <title>Welcome to PALポータル</title> - <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata> - <metadata name="title" xml:lang="es">¡Bienvenido a PALポータル!</metadata> - <metadata name="title" xml:lang="hu">Köszönti a PALポータル!</metadata> - - <!-- ページの装飾 --> - <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/> - - <!-- ページフラグメント --> - <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> - <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> - <property layout="OneColumn" name="row" value="0"/> - </fragment> - <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> - <property layout="OneColumn" name="row" value="1"/> - <property layout="TwoColumns" name="sizes" value="33%,66%"/> - <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet"> - <property layout="TwoColumns" name="row" value="0"/> - <property layout="TwoColumns" name="column" value="0"/> - </fragment> - <fragment id="100171" type="portlet" name="demo::UserInfoTest"> - <property layout="TwoColumns" name="row" value="0"/> - <property layout="TwoColumns" name="column" value="1"/> - </fragment> - </fragment> - </fragment> - - <!-- セキュリティ制限 --> - <security-constraints> - <security-constraints-ref>public-view</security-constraints-ref> - </security-constraints> -</page> -]]></source> - -<p> -以下に、ポータルサイトの <a href="#Folder">フォルダ</a> (folder.metadata) 用の定義を行う PSML ファイルの例を示します。 -</p> - -<source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<folder> - <!-- フォルダの説明 --> - <title>Root Folder</title> - <metadata name="title" xml:lang="fr">Répertoire racine</metadata> - <metadata name="title" xml:lang="es">Carpeta raiz</metadata> - - <!-- フォルダ内のドキュメントの順序 --> - <document-order>Jetspeed2.link</document-order> - <document-order>Jetspeed2Wiki.link</document-order> - <document-order>apache_portals.link</document-order> - <document-order>apache.link</document-order> - - <!-- ポータルサイトのメニュー --> - <menu name="page-navigations"> - <separator> - <text>Top Pages</text> - <metadata name="text" xml:lang="fr">Page haut</metadata> - <metadata name="text" xml:lang="es">Páginas más populares</metadata> - </separator> - <options>/Administrative</options> - <separator> - <text>Profiled Pages</text> - <metadata name="text" xml:lang="es">Páginas del Perfil</metadata> - </separator> - <options regexp="true">/p[0-9][0-9][0-9].psml</options> - <separator> - <text>Non Java Pages</text> - <metadata name="text" xml:lang="es">Ejemplos sin java</metadata> - </separator> - <options>/non-java</options> - </menu> - - <!-- セキュリティ制限 --> - <security-constraints> - <security-constraints-ref>public-view</security-constraints-ref> - </security-constraints> -</folder> -]]></source> - -<p> -以下に、ポータルサイトの <a href="#Link">リンク</a> (*.link) 用の PSML ファイルの例を示します。 -</p> - -<source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<link target="top"> - <!-- リンクの説明 --> - <title>PALポータルHome Page</title> - <url>http://portals.apache.org/jetspeed-2/</url> - <metadata name="title" xml:lang="es">PALポータル</metadata> -</link> -]]></source> - -<p> -以下に、ポータルサイトの <a href="#Global_Page_Security">ページのセキュリティ</a> (page.security) 用の PSML ファイルの例を示します。 -</p> - - -<source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<page-security> - <!-- 大域的な管理者の制限 --> - <security-constraints-def name="admin"> - <security-constraint> - <roles>admin</roles> - <permissions>view, edit</permissions> - </security-constraint> - </security-constraints-def> - <global-security-constraints-ref>admin</global-security-constraints-ref> - - <!-- パブリックな制限 --> - <security-constraints-def name="public-view"> - <security-constraint> - <users>*</users> - <permissions>view</permissions> - </security-constraint> - </security-constraints-def> - <security-constraints-def name="public-edit"> - <security-constraint> - <users>*</users> - <permissions>view, edit</permissions> - </security-constraint> - </security-constraints-def> -</page-security> -]]></source> -</section> -<section name=' ページ'> - -<p> -<page> 要素は、ポータルサイトのページに関連する他の PSML 要素を保持するための単純な入れ物です。この要素は、親である<a href="#Folder">フォルダ</a>を構成する適切なファイルシステムディレクトリ内に、'.psml' という拡張子を持つファイルとして存在します。 2 つの有効な属性がページエレメントの属性として存在します。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>hidden</td> - <td>ページがポータルサイトのサイトメニューまたは他のナビゲーション用の要素に表れるかどうかを指示するための真偽値の属性。</td> - </tr> - <tr> - <td>version</td> - <td>一般的な目的のバージョントラッキングのための属性。PALポータルでは現在使われていません。</td> - </tr> -</table> - -<p> -<page> 要素は多くの他の PSML 要素を含みます。 -</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>title?</td> - <td>デフォルトのページタイトルを表すテキストを含む単純な要素。ページのタイトルは、その長い説明とみなされます。もしメニューテキスト用の短いタイトルが利用可能であれば、一部のデコレータでロールオーバー (訳注:マウスポインタがHTML文書の中の要素の上にくると、その要素が変化する仕組みのこと) 用のテキストとして使われます。もし指定されていなければ、PALポータルは page 要素を含むファイルのファイル名からタイトルを決めようと試みます。</td> - </tr> - <tr> - <td>short-title?</td> - <td>ページのデフォルトの短いタイトルのテキストを含む単純で省略可能な要素。短いタイトルは、もし利用可能であれば、一部のデコレータ内のメニューテキストとして使われます。もし指定されない場合は title のテキストが使われます。</td> - </tr> - <tr> - <td><a href="#Defaults">defaults</a></td> - <td>ページとそのフラグメントのための装飾を指定します。defaults はページ毎に必要です。</td> - </tr> - <tr> - <td><a href="#Layout_Fragments">fragment</a></td> - <td>フラグメントの階層構造のルート。全てのページにルートのフラグメントが必要です。</td> - </tr> - <tr> - <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td> - <td>省略可能の指定である、ページ用のロケール特有のタイトルと短いタイトル。</td> - </tr> - <tr> - <td><a href="#Menus">menu</a>*</td> - <td>省略可能の指定である、ページ用の追加または上書きされた継承したメニュー定義の指定。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td> - <td>省略可能の定義である、ページ用のインラインのセキュリティ制限の定義。もし指定されなければ、ページは親<a href="#Folder">フォルダ</a>内の有効なセキュリティ制限を継承します。</td> - </tr> -</table> - -<p>例: <a href="#PSML">イントロで示した例を参照してください。</a></p> -</section> - -<section name=' デフォルト'> - -<p> -<a href="#Page">ページ</a>内の <defaults> 要素は、デフォルトのレイアウトデコレータと、デフォルトのポートレットデコレータを定義します。デフォルトのレイアウトデコレータは、デコレータ属性を持たない全てのレイアウトフラグメントに対して適用されます。デフォルトのポートレットデコレータは、デコレータ属性を持たない全てのポートレットフラグメントに対して適用されます。defaults 要素には 3 つの有効な属性があります。 -</p> - -<table> - <tr> - <th>Attribute</th> - <th>Description</th> - </tr> - <tr> - <td>layout-decorator</td> - <td>ページをレンダリングするときに使うレイアウトデコレータの名前。この属性は必須です。</td> - </tr> - <tr> - <td>portlet-decorator</td> - <td>ページフラグメントをレンダリングするときに使うデフォルトのポートレットデコレータの名前。この属性は省略可能ですが、ほとんどいつも設定します。</td> - </tr> - <tr> - <td>skin</td> - <td>ページやフラグメントの表示を制御するためにデコレータ内で参照される一般的な目的のデコレータ属性。現時点では PALポータルでは使用していません。</td> - </tr> -</table> - -<p>例:</p> - -<source><![CDATA[ -<page> - ... - <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/> - ... -</page> -]]></source> -</section> - -<section name=' レイアウトフラグメント'> - -<p> -<a href="#Page">ページ</a> のレイアウト <fragment> 要素は階層構造のコンテナです。これは <a href="#Portlet_Fragments">ポートレットフラグメント</a>と、階層化されたレイアウトフラグメントを保持するのに使われます。<a href="#Page">ページ</a>のルートのフラグメントは、ページに 1 つしかポートレットがないときでも、レイアウトフラグメントでなければなりません。レイアウトフラグメントは親となるレイアウトフラグメントのレイアウトに従属します。なので "row" と "column" の <a href="#Fragment_Properties">レイアウトプロパティ</a>をサポートします。加えて、レイアウトフラグメントは 'sizes' レイアウトプロパティもサポートします。これは、複数列のレイアウトの列の割合をコントロールするのに使われます。この要素には 3 つの必須の属性があります。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>id</td> - <td>必須である id は、フラグメントを特定するのに使います。そして、サイト内で定義される全てのフラグメントに渡ってユニークで<b>なければなりません</b>。この値は PALポータルに対して透過的でなく、一意性を保証するためのどのような仕様にも従うことが可能です。フラグメントは PALポータルで内部的にキャッシュされる可能性があるので、既存のページに対する任意の編集が、PALポータルが行う変更を保証するために新しい id を必要とするかも知れません。</td> - </tr> - <tr> - <td>type</td> - <td>この必須の属性はレイアウトフラグメント全てで 'layout' と指定しなければなりません。</td> - </tr> - <tr> - <td>name</td> - <td>必須であるポートレット名は、フラグメントレイアウトを実装するのに使われます。ポートレット名は一般的に、portlet.xml ファイルで指定された 'portlet-app-id:portlet-id' の形を取ります。以下が PALポータルでサポートされるレイアウトポートレットの名前です。 - <ul> - <li>jetspeed-layouts::FrameLayoutPortlet</li> - <li>jetspeed-layouts::VelocityOneColumn</li> - <li>jetspeed-layouts::VelocityOneColumnNoActions</li> - <li>jetspeed-layouts::VelocityThreeColumns</li> - <li>jetspeed-layouts::VelocityThreeColumnsNoActions</li> - <li>jetspeed-layouts::VelocityThreeColumnsTable</li> - <li>jetspeed-layouts::VelocityTwoColumns</li> - <li>jetspeed-layouts::VelocityTwoColumns2575</li> - <li>jetspeed-layouts::VelocityTwoColumns2575NoActions</li> - <li>jetspeed-layouts::VelocityTwoColumnsNoActions</li> - <li>jetspeed-layouts::VelocityTwoColumnsSmallLeft</li> - <li>jetspeed-layouts::VelocityTwoColumnsSmallLeftNoActions</li> - <li>jetspeed-layouts::VelocityTwoColumnsTable</li> - </ul> - </td> - </tr> -</table> - -<p> -レイアウト <fragment> 要素はたくさんの他の PSML 要素を含みます。 -</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td><a href="#Portlet_Fragments">fragment*</a></td> - <td>指定された fragment 要素は、レイアウトフラグメントによってレイアウトされるポートレットフラグメント、または階層化されたレイアウトフラグメントのどちらにも成り得ます。全ての子フラグメントにはこのレイアウトの位置を指定するための <a href="#Fragment_Properties">property</a> 要素が必須です。レイアウトフラグメント内に指定されるフラグメントがない場合は結果としてコンテンツは生成されません。</td> - </tr> - <tr> - <td><a href="#Fragment_Properties">property*</a></td> - <td>レイアウトフラグメントは省略可能で 'sizes' プロパティを持つことが可能です。これは複数列の形状の明細を指定するのに使うことが可能です。階層化されたレイアウトフラグメントは、親レイアウト内の位置を特定するために 'row' または 'column' またはその両方のプロパティも持つかもしれません。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td> - <td>フラグメントとそのフラグメントの子フラグメントに対して、省略可能なインラインのセキュリティ制限を定義します。ページ、リンクの制約と違って、'view' パーミッションのみが制限されます。もし指定されなければ、フラグメントは <a href="#Page">ページ</a> 内で有効なセキュリティ制限を継承します。</td> - </tr> -</table> - -<p>例:</p> - -<page> - ... - <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> - <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> - <property layout="OneColumn" name="row" value="0"/> - </fragment> - <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> - <property layout="OneColumn" name="row" value="1"/> - <property layout="TwoColumns" name="sizes" value="33%,66%"/> - <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet"> - <property layout="TwoColumns" name="row" value="0"/> - <property layout="TwoColumns" name="column" value="0"/> - </fragment> - <fragment id="100171" type="portlet" name="demo::UserInfoTest"> - <property layout="TwoColumns" name="row" value="0"/> - <property layout="TwoColumns" name="column" value="1"/> - </fragment> - </fragment> - </fragment> - ... -</page> -</section> - -<section name=' ポートレットフラグメント'> - -<p>ポートレットの <fragment> 要素は、ページのポートレットを識別するために使われます。ポートレットフラグメントは、親レイアウトフラグメントのレイアウトの影響を受けます。なので、レイアウトで定められている 'row' と 'column' の<a href="#Fragment_Properties">レイアウトプロパティ</a> をサポートします。この要素に対しては多数の有効な属性が存在します。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>id</td> - <td>必須である id は、フラグメントを特定するのに使います。そして、サイト内で定義される全てのフラグメントに渡って、ユニークで<b>なければなりません</b>。この値は PALポータルに対して透過的でなく、一意性を保証するためのどのような仕様にも従うことが可能です。フラグメントは PALポータルで内部的にキャッシュされる可能性があるので、既存のページに対する任意の編集が、PALポータルが行う変更を保証するために新しい id を必要とするかも知れません。</td> - </tr> - <tr> - <td>type</td> - <td>この必須の属性は全てのポートレットフラグメントで 'portlet' と指定しなければなりません。</td> - </tr> - <tr> - <td>name</td> - <td>必須であるポートレット名は、フラグメントコンテンツを流し込むのに使われます。ポートレット名は一般的に portlet.xml ファイルで指定された 'portlet-app-id:portlet-id' の形を取ります。</td> - </tr> - <tr> - <td>skin</td> - <td>フラグメントの表示のコントロールのための、ポートレットデコレータ内で参照する可能性のある一般的な目的のデコレータ属性。現時点では PALポータルでは使っていません。</td> - </tr> - <tr> - <td>decorator</td> - <td>デフォルトのポートレットデコレータ名は、フラグメントのレンダリングに使われます。この属性は省略可能です。しかし、この属性が指定されない場合は、ページの <a href="#Defaults">defaults</a> がデフォルトのポートレットデコレータを指定します。</td> - </tr> - <tr> - <td>state</td> - <td>フラグメントポートレットの初期状態; 現時点ではこの属性に対しては、唯一 'hidden' が有効な値です。</td> - </tr> -</table> - -<p> -ポートレットの <fragment> 要素は他の PSML 要素を含みます。 -</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td><a href="#Fragment_Properties">property*</a></td> - <td>親フラグメントは、親レイアウト内の位置を特定するために、'row' または 'column' またはその両方のプロパティを持てます。</td> - </tr> - <tr> - <td>title?</td> - <td>フラグメントポートレットのタイトルを含む、省略可能で単純なテキストの要素。portlet.xml でセットされたタイトルを上書きします。</td> - </tr> - <tr> - <td><a href="#Preferences">preference*</a></td> - <td>フラグメントポートレットにたいして、設定される初期のユーザプリファレンスを指定します。portlet.xml 内で指定された、どのようなポートレットプリファレンスも上書きされます。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td> - <td>フラグメントに対するインラインのセキュリティ制限を省略可能で定義します。ページ、フォルダの制約と違って、'view' パーミッションだけを制限できます。もし指定されない場合は、そのフラグメントは <a href="#Page">page</a> 内で有効なセキュリティ制限を継承します。</td> - </tr> -</table> - -<p>例:</p> - -<source><![CDATA[ -<fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> - ... - <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> - <property layout="OneColumn" name="row" value="0"/> - </fragment> - ... -</fragment> -]]></source> -</section> - -<section name=' フラグメントのプロパティ'> - -<p><a href="#Portlet_Fragments">フラグメント</a>の <property> 要素はフラグメントのプロパティの名前を指定するのに使われます。これらのプロパティは一般にレイアウトポートレットのパラメータとページ内のポートレットの位置を指定するために使われます。プロパティ要素は 3 つの属性をサポートします。</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>layout <i>(廃止予定)</i> </td> - <td>プロパティが紐付いているフラグメントポートレットの識別名。この属性は互換性のために用意されています。レイアウトとポートレットフラグメントの厳密な階層構造は、どのような単一のフラグメントとそのプロパティも、 1 つのレイアウトポートレットの影響下にある可能性があることを意味します。</td> - </tr> - <tr> - <td>name</td> - <td>フラグメントプロパティの名前。PALポータルのレイアウトポートレットは 'row'、'column'、'sizes' プロパティをサポートします。</td> - </tr> - <tr> - <td>value</td> - <td>フラグメントプロパティの値。'row' と 'column' プロパティはゼロベースの指標値を受け取ります。'sizes' プロパティは HTML frameset タグの 'rows' と 'cols' 属性の書式 (例えば '25%,75%' 等) を受け取ります。</td> - </tr> -</table> - -<p>例:</p> - -<source><![CDATA[ -<fragment id="100876" type="portlet" name="j2-admin::LoginPortlet"> - ... - <property layout="TwoColumns" name="row" value="2"/> - <property layout="TwoColumns" name="column" value="1"/> - ... -</fragment> -]]></source> - -<source><![CDATA[ -<fragment id="103456" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> - ... - <property layout="TwoColumns" name="sizes" value="33%,66%"/> - ... -</fragment> -]]></source> -</section> - -<section name=' プリファレンス'> - -<p> -<a href="#Portlet_Fragments">ポートレットフラグメント</a> の <preference> 要素は、ポートレットプリファレンスを定義します。これは、ポートレットアプリケーションの portlet.xml 内に、ポートレットの定義を何度も行う必要なく、ページ上のポートレットインスタンス用に、デフォルトのポートレットプリファレンスの設定を、簡単に行う手段を提供します。 -</p> - -<p> -プリファレンスの優先度: ユーザ定義 > フラグメント定義 > portlet.xml での定義 -</p> - -<p> -<preference> 要素の属性は以下のようなものです。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>name</td> - <td>プリファレンスの名前。</td> - </tr> - <tr> - <td>readOnly</td> - <td>ユーザがこのプリファレンス値を変えることができるかどうかを示す真偽値。</td> - </tr> -</table> - -<p><preference> 要素は以下の要素を含みます。</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>value+</td> - <td>指定したプリファレンスと関係する値を含む単純なテキスト要素。</td> - </tr> -</table> - -<p>例:</p> - -<source><![CDATA[ -<fragment id="uhtemp-1012" type="portlet" name="demo::BookmarkPortlet"> - ... - <preference name="Google" readOnly="false"> - <value>http://www.google.com</value> - </preference> - ... -</fragment> -]]></source> -</section> - -<section name=' フォルダ'> - -<p> -<folder> 要素は、ポータルサイトのフォルダと関連する他の PSML 要素を保持する単純な入れ物です。この要素は、関連するファイルシステムディレクトリ内の folder.metadata ファイルとして存在します。フォルダの要素には 2 つの有効な属性が存在します。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>hidden</td> - <td>フォルダが、ポータルサイトのメニューや他のナビゲーション用の要素に、表示されるかどうかを示す真偽値の属性。</td> - </tr> - <tr> - <td>version</td> - <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> - </tr> -</table> - -<p><folder> 要素は多くの他の PSML 要素を含みます。</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>title?</td> - <td>デフォルトのフォルダのタイトルを含む単純な要素。フォルダのタイトルは、自身の長い説明とみなされます。もし短いタイトル名が利用可能であれば、一部のデコレータでロールオーバー用のテキストとして使われます。もし指定されていなければ、PALポータルはフォルダ要素を含むファイル名からタイトルを決めようと試みます。</td> - </tr> - <tr> - <td>short-title?</td> - <td>フォルダのデフォルトの短いタイトルのテキストを含む省略可能な単純要素。もし短いタイトルが利用可能であれば、一部のデコレータでメニューテキストとして使われます。もし指定されない場合は、title のテキストが使われます。</td> - </tr> - <tr> - <td>default-page?</td> - <td>フォルダのデフォルトページまたはサブフォルダのテキストを含む単純で省略可能な要素。デフォルトページは、フォルダが直接ポータルから参照されるときに使われます。このフォルダ内のどのような <a href="#Page">ページ</a>やフォルダを (親フォルダとして使われる「..」も含む) 指定することも可能です。もしデフォルトページが設定されない場合は、「default-page.psml」が使われます。もし 「default-page.psml」が存在しない場合は、フォルダ内の最初のページがデフォルトになります。</td> - </tr> - - <tr> - <td>document-order*</td> - <td><a href="#Page">ページ</a>、サブフォルダ、<a href="#Link">リンク</a> といった構成要素のソートの順番を定義するのに使われる、構成要素のテキスト名を含む単純で省略可能な要素。名前にマッチする構成要素は、その要素が定義された順番に配置されます。他の構成要素は名前でソートされます。そして、メニューや他のリストでは、一致した構成要素の後に表示されます。正規表現による一致はサポートしません。</td> - </tr> - - <tr> - <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td> - <td>省略可能の指定である、ロケール固有のフォルダのタイトルや短いタイトル。</td> - </tr> - <tr> - <td><a href="#Menus">menu</a>*</td> - <td>省略可能の指定である、追加の、または継承したものを上書きするフォルダのメニュー定義。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td> - <td>省略可能の定義である、フォルダ用のインラインのセキュリティ制限の定義。もし指定されなければ、フォルダは親フォルダ内の有効なセキュリティ制限を継承します。</td> - </tr> -</table> - -<p>例: <a href="#PSML">序文の例を参照してください。</a></p> -</section> - -<section name=' リンク'> - -<p> -<link> 要素は、ポータルサイトの外部のコンテンツを参照するのに使われるポータルリンクに関連づけられている、他の PSML 要素を保持するシンプルな入れ物です。この要素は、親<a href="#Folder">フォルダ</a>と関連づけられている、適切なファイルシステムのディレクトリ内に存在する「.link」という拡張子のファイルとして存在します。この要素には 2 つの有効な属性があります。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>target</td> - <td>省略可能の指定である、外部コンテンツを開くための対象となるフレームの名前。もし指定されなければ、リンクされたコンテンツはブラウザで開いているポータルと置き換わります。</td> - </tr> - <tr> - <td>version</td> - <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> - </tr> -</table> - -<p> -<link> 要素は多数の他の PSML 要素を含みます。 -</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td>title?</td> - <td>デフォルトのリンクタイトル用のテキストを含むシンプルな要素。リンクのタイトルは、その長い説明とみなされます。もしメニューテキスト用の短いタイトルが利用可能であれば、一部のデコレータでロールオーバー用のテキストとして使われます。もし指定されていなければ、PALポータルは link 要素を含むファイルのファイル名からタイトルを決めようと試みます。</td> - </tr> - <tr> - <td>short-title?</td> - <td>リンクのデフォルトの短いタイトルのテキストを含む単純で省略可能な要素。もし短いタイトルが利用可能であれば、一部のデコレータでメニューテキストとして使われます。</td> - </tr> - <tr> - <td>url</td> - <td>コンテンツの URL のための必須の要素。この要素のテキストは、指定されたブラウザの対象フレームをナビゲートするのに使われます。</td> - </tr> - <tr> - <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td> - <td>省略可能の指定である、ロケール固有のリンクのタイトルや短いタイトル。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td> - <td>省略可能の指定である、リンクのためのセキュリティ制限。もし指定されなければ、リンクは親<a href="#Folder">フォルダ</a>内の有効なセキュリティ制限を継承します。</td> - </tr> -</table> - -<p>例: <a href="#PSML">序文の例を参照してください。</a></p> -</section> - -<section name=' グローバルなページのセキュリティ'> - -<p> -<page-security> 要素はグローバルなセキュリティ制限と、その定義を宣言するために使われる、他の PSML 要素を保持するためのシンプルな入れ物です。この要素は page.security ファイルとして存在し、常に PSML ファイルのシステムディレクトリのルートディレクトリに存在します。page-security 要素の有効な属性は 1 つだけ存在します。 -</p> - -<table> - <tr> - <th>属性</th> - <th>説明</th> - </tr> - <tr> - <td>version</td> - <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> - </tr> -</table> - -<p> -<page-security> 要素は PSML 要素に関連する 2 つのセキュリティ制限を含みます。 -</p> - -<table> - <tr> - <th>要素</th> - <th>説明</th> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">security-constraints-def</a>*</td> - <td>省略可能の定義である、セキュリティ制限のコレクションの名前。これらのセキュリティ制限は<a href="#Page">ページ</a>、<a href="#Layout_Fragments">フラグメント</a>、<a href="#Folder">フォルダ</a>、<a href="#Link">リンク</a>内で、そして再利用とセキュリティのメンテナンスを容易にするために、この要素内で参照されます。</td> - </tr> - <tr> - <td><a href="#PSML_Security_Constraints">global-security-constraints-ref</a>*</td> - <td>サイト内の全てのセキュリティ制限を適用するための、省略可能の定義であるセキュリティ制限参照。それぞれのシンプルな要素のテキストは、このエレメント内のここで指定された名前のセキュリティ制限の定義を参照します。</td> - </tr> -</table> - -<p>例: <a href="#PSML">序文の例を参照してください。</a></p> -</section> - -<section name=' PSML タイトルとメタデータ'> - -<p> -<a href="#Page">ページ</a>, <a href="#Folder">フォルダ</a>, <a href="#Link">リンク</a> の <metadata> 要素はロケール特有のタイトルと短いタイトルのテキストを定義するのに使われます。これらの要素は何度でも、含まれる PSML 要素内で表れるかもしれません。しかし、複数の値が 1 つのロケールにたいして指定してはいけません。PSML XML 文書は、普通は広範囲のキャラクタセットをサポートするために、UTF-8 エンコーディングで宣言されます。 -</p> - -<table> - <tr> - </tr> - <th>属性</th> - <th>説明</th> - <tr> - <td>name</td> - <td>メタデータテキストの名前。この名前は、ロケール特有のタイトルテキストを指定するための、'title' と 'short-title' のどちらかを指定してください。</td> - </tr> - <tr> - <td>xml:lang</td> - <td>メタデータテキストのためのロケール言語または言語/国セレクタ。標準の Java ロケール名が期待されます (ISO-639 と ISO-3166)。有効な値として 'en' や 'en_US' を含みます。</td> - </tr> -</table> - -<p>例:</p> - -<source><![CDATA[ -<page> - ... - <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata> - <metadata name="title" xml:lang="es">¡Bienvenido a PALポータル!</metadata> - <metadata name="title" xml:lang="hu">Köszönti a PALポータル!</metadata> - ... -</page> -]]></source> -</section> - -<section name=" PSML セキュリティ制限"> - -<p> -<a href="#Page">pages</a>、<a href="#Layout_Fragments">fragments</a>、<a href="#Folder">folders</a>、 <a href="#Link">links</a>、<a href="#Global_Page_Security">page security</a> 要素内で現れる <security-constraints>、<security-constraints-def>、<global-security-constraints-ref> 要素については宣言型セキュリティ制限に関するドキュメントに別途記述されています。 -</p> - -<p> -<a href='guide-security-declarative-psml.html'>宣言型セキュリティ制限のガイド</a> -</p> -</section> - -<section name=" PSML メニュー"> - -<p> -<a href="#Page">ページ</a> や <a href="#Folder">フォルダ</a> 要素内で現れる <menu> 要素は宣言型メニューのガイドに別途記述されています。 -</p> - -<p> -<a href='guide-menus-declarative-psml.html'>宣言型メニューのガイド</a> -</p> - -</section> - -</body> -</document> - Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-security-declarative-psml.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-security-declarative-psml.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-security-declarative-psml.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,337 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright 2004-2005 The Apache Software Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<document> - <properties> - <title>Guide to Declarative Security through PSML</title> - <subtitle>Guide to Declarative Security through PSML</subtitle> - <authors> - <person name="David Sean Taylor" email="taylo****@apach*****"/> - <person name="Randy Watler" email="rwatl****@apach*****"/> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> -<section name=" セキュリティ制約"> - -<p> -<ul> - <li><a href="#The Security Constraint">セキュリティ制約</a></li> - <li><a href="#Declarative and Global Constraints">宣言型の制約とグローバルの制約</a></li> - <li><a href="#Folder Constraints">フォルダの制約</a></li> - <li><a href="#Page Constraints">ページの制約</a></li> - <li><a href="#Fragment Constraints">フラグメントの制約</a></li> - <li><a href="#Spring Configuration">Spring の設定</a></li> -</ul> -</p> - -<p> -セキュリティ制約は、ページとフォルダに適用されます。セキュリティ制約は、ページとフォルダに対するアクセスを許可したり拒否したりします。制約は、以下の 4 つの場所の 1 つまたは全てで定義されます。 -<ul> - <li>1. <b>グローバル:</b> PSML ツリーのルートに存在する <b><i>page.security</i></b> ファイル内の宣言として。</li> - <li>2. <b>フォルダ:</b> 各ディレクトリにオプショナルに存在する <b><i>folder.metadata</i></b> ファイル内で。</li> - <li>3. <b>ページ:</b> 特定のページへのアクセスを制限するために PSML ファイル内で。</li> - <li>4. <b>フラグメント:</b> ページ内の特定のフラグメントに対するアクセスを制限するために PSML ファイルの中で。</li> -</ul> -</p> -<subsection name=' 許可'> - -<p> -許可は、ページまたはフォルダへのアクセスに対するパーミッション、承認、権限の授与、プリンシパルのリストのどれかに関係します。セキュリティ制約を与えるということは、 1 つ以上のパーミッションと組み合せた、 1 つ以上のセキュリティプリンシパルのリストの関連付けを行うということです。制約を与えると、関連づけられたパーミッションのリストの通りになるようページまたはフォルダへのアクセスが許可されます。 -</p> -</subsection> -<subsection name=' 否認'> - -<p> -否認のセキュリティ制約は、 1 つ以上のセキュリティプリンシパルと共に宣言されます。制約の否認は、与えられたプリンシパルのリストの通りになるよう、ページやフォルダに対するアクセスを禁止します。制約の否認は、制約の承認の前にリストアップされる必要があることに注意してください。 -</p> -</subsection> -<subsection name=' 宣言型と参照型の制約'> - -<p> -ページとフォルダのリソース制約が適用されるとき、制約は <b><i>宣言型</i></b> または <b><i>参照型</i></b> の制約のどちらかである可能性があります。宣言型の制約は、特定のページまたはフォルダのリソースが、適切に使われるために宣言されます。参照型の制約は、中央集権的なセキュリティ制約リソースである <b><i>page.security</i></b> ファイル内で宣言された制約を参照します。サイト毎かサブサイト毎に、任意のページやフォルダ内で参照される制約を宣言するために、<b><i>page.security</i></b> が 1 つあります。 -</p> -</subsection> -</section> -<section name=' セキュリティ制約'> - -<p> -セキュリティ制約は、PSML ファイル内、もしくはフォルダのメタデータファイル内、もしくはグローバルなセキュリティの宣言中にある XML 要素です。セキュリティ制限には name という属性が 1 つ存在します。セキュリティ制約は、以下の要素を持ちます。 -</p> - -<ul> - <li>roles - カンマで区切られた 1 つ以上のロールプリンシパルのリスト、もしくは全てのロールを表す *</li> - <li>groups - カンマで区切られた 1 つ以上のグループプリンシパルのリスト、もしくは全てのグループを表す *</li> - <li>users - カンマで区切られた 1 つ以上のユーザプリンシパル、もしくは全てのユーザを表す *</li> - <li>owner - 単一のユーザプリンシパル</li> - <li>permissions - カンマで区切られた 1 つ以上のパーミッション (view, edit, help) のリスト</li> -</ul> - -<p> -最初の 4 つの要素 (roles, groups, users, owner) は全て、承認されるもしくは拒否されるパーミッションを持つプリンシパルを定義します。 -</p> -<subsection name=' パーミッション'> - -<p> -パーミッションは、セキュリティ制限によって許可が与えられるポータルのモードです。パーミッションは許可を行うだけで、否認はしません。 -<b><i>view</i></b> パーミッションは、オペレーティングシステムにおける <b><i>read</i></b> パーミッションと同様のものです。 -<b><i>edit</i></b> パーミッションは、オペレーティングシステムにおける <b><i>write</i></b> パーミッションと同様のものです。 -<b><i>help</i></b> パーミッションは、他のポータルで <b><i>info</i></b> パーミッションとなっているものと同様のものです。 -</p> -</subsection> - -<subsection name=' ロール'> - -<p> -制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のロールプリンシパルに与えることができます。ロールは、承認されたロールプリンシパル (つまりそのユーザがメンバーであるということ) のユーザリストから得られます。もし承認されたユーザが、リストされたロールのどれかのメンバーであるのなら、リソースに対するパーミッションが与えられます。 -</p> - -<source><![CDATA[ - <security-constraint> - <roles>adminstrator, manager</roles> - <permissions>view, edit</permissions> - </security-constraint> -]]></source> - -<p> -制約は、ロールプリンシパルのリソース全体に対するアクセスを拒否することも可能です。もし承認されたユーザが、リストされたロールのどれかのメンバーであるのなら、リソースに対する全てのアクセスが拒否されます。 -</p> - -<source><![CDATA[ - <security-constraint> - <roles>adminstrator, manager</roles> - </security-constraint> -]]></source> -</subsection> -<subsection name=' グループ'> - - <p> -制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のグループプリンシパルに与えることができます。 -グループは、承認されたグループプリンシパル (つまりユーザがメンバーであるグループ) のユーザのリストから得られます。 -もし承認されたユーザが、リストされたグループのどれかのメンバーであるのなら、リソースに対するパーミッションが与えられます。 -<source><![CDATA[ - <security-constraint> - <groups>accounting, development</groups> - <permissions>view</permissions> - </security-constraint> -]]></source> -制約は、グループプリンシパルのリソース全体に対するアクセスを拒否することもできます。もし承認されたユーザが、リストされたグループのいずれかのメンバーであるのなら、リソースに対する全てのアクセスが拒否されます。 -<source><![CDATA[ - <security-constraint> - <groups>accounting, development</groups> - </security-constraint> -]]></source> - </p> -</subsection> -<subsection name=' ユーザ'> - - <p> -制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のユーザプリンシパルに与えることができます。現在のユーザは、リソースに対するパーミッションを与えるためにカンマで区切られたリスト中にリストされる、プリンシパルの 1 つでなければなりません。 -<source><![CDATA[ - <security-constraint> - <users>joey, deedee, johnny</users> - <permissions>view, edit, help</permissions> - </security-constraint> -]]></source> -制約は、ユーザプリンシパルの全てのリソースに対するアクセスを拒否することも可能です。もし承認されたユーザがリスト内にあれば、全てのアクセスは拒否されます。 -<source><![CDATA[ - <security-constraint> - <users>fred</users> - </security-constraint> -]]></source> - </p> -</subsection> -<subsection name=' 組み合せ'> - -<p> - 1 つ以上の種類のプリンシパルの集合に対してパーミッションを与えたり、拒否したりできることに注意してください。例えば、ここではロール (manager, developer) とグループ (QA と Research) と特定のユーザ (dilbert) に対して、view と edit のパーミッションを与えています。もし承認されたユーザが、ここにリストされたロール、ユーザ、グループのどれかのメンバーであるのなら、このリソースに対するパーミッションが与えられます。 -</p> - -<source><![CDATA[ - <security-constraint> - <roles>hacker, coder, guru</roles> - <groups>unix, linux, freebsd</groups> - <users>betty, fred, barney, wilma</users> - <permissions>view, edit</permissions> - </security-constraint> -]]></source> - -<p> -制約は、プリンシパルの組み合せが、全てのリソースに対するアクセスを拒否することも可能です。もし承認されたユーザが、リストされたグループやロールやユーザのメンバーであれば、リソースに対する全てのアクセスは拒否されます。 -</p> - -<source><![CDATA[ - <security-constraint> - <roles>hacker, coder, guru</roles> - <groups>unix, linux, freebsd</groups> - <users>betty, fred, barney, wilma</users> - </security-constraint> -]]></source> -</subsection> -<subsection name='すべて *'> - -<p> -全てを意味する * (アスタリスク) は、ロール、グループ、ユーザ、パーミッションの全てに適用可能です。 -<source><![CDATA[ - <security-constraint> - <users>*</users> - <permissions>*</permissions> - </security-constraint> -]]></source> -</p> -</subsection> -<subsection name=' オーナー'> - - <p> - TODO - </p> -</subsection> -</section> -<section name=' 宣言型の制約とグローバルの制約'> - -<p> -宣言型の制約は、サイトのルートにある <b><i>page.security</i></b> ファイル内で宣言されます。宣言型の制約は、<b><i>security-constraints-ref</i></b> タグを使って、ページやフォルダ内で参照されます。グローバルな制約も宣言型の制約です。これらは、ルート PSML リポジトリ内の <b><i>page.security</i></b> ファイル内で定義され、見付かります。グローバルな制約との違いは、page.security ファイルのスコープ内 (すなわちサイト) の全てのフォルダとページに、暗黙のうちに適用されることです。PALポータルをインストールすると、 1 つしか <b><i>page.security</i></b> ファイルは存在できないことに注意してください。 -</p> - -<source><![CDATA[ - <security-constraints-def name="admin"> - <security-constraint> - <roles>admin</roles> - <permissions>view, edit</permissions> - </security-constraint> - </security-constraints-def> - <global-security-constraints-ref>admin</global-security-constraints-ref> -]]></source> -<subsection name=' デフォルトの制約'> - -<p> -セキュリティ制約の宣言には、PALポータルのデフォルトの配備で作成されるものがあります。 -<table> - <tr> - <th>制約名</th> - <th>与えられる対象</th> - <th>パーミッション</th> - <th>グローバルかどうか</th> - </tr> - <tr> - <td>admin</td> - <td>roles: admin</td> - <td>view, edit</td> - <td>yes</td> - </tr> - <tr> - <td>manager</td> - <td>roles: manager</td> - <td>view</td> - <td>no</td> - </tr> - <tr> - <td>users</td> - <td>roles: user, manager</td> - <td>view</td> - <td>no</td> - </tr> - <tr> - <td>public-view</td> - <td>users: *</td> - <td>view</td> - <td>no</td> - </tr> - <tr> - <td>public-edit</td> - <td>users: *</td> - <td>view, edit</td> - <td>no</td> - </tr> -</table> -</p> -</subsection> -</section> -<section name=' フォルダの制約'> - -<p> -フォルダのセキュリティ制約は、サイト内の各フォルダにオプショナルで存在する <b><i>folder.metadata</i></b> ファイル内の <b><i>security-constraints リスト</i></b> 内に記述されます。<b><i>folder.metadata</i></b> ファイルがない場合、もしくはそのファイル内にセキュリティ制約の記述がない場合は、フォルダは、サイトかサブサイトのルートフォルダまでディレクトリをたどって、親フォルダの制約を継承することに注意してください。以下に 2 つの例を示します。 1 つ目は参照型の制約であり、 2 つ目は宣言型の制約です。 -<source><![CDATA[ - <security-constraints> - <security-constraints-ref>public-view</security-constraints-ref> - <security-constraint> - <groups>engineering</groups> - <permissions>view</permissions> - </security-constraint> - </security-constraints> -]]></source> -</p> - -<p> -全てのセキュリティ制約は、<b><i>security-constraints</i></b> 内に記述しなければなりません。 -</p> -</section> -<section name=' ページの制約'> - -<p> -ページのセキュリティ制約は、<b><i>PSML</i></b> ファイル内の <b><i>security-constraints list</i></b> に記述されます。これはオプショナルです。このファイルにセキュリティ制約の記述がない場合は、フォルダは、自身が存在するフォルダの制約を継承することに注意してください。ページのセキュリティ制約は、宣言型のセキュリティ制約と参照型のセキュリティ制約から作成されます。以下に、 2 つの例を示します。 1 つ目は参照型の制約、 2 つ目は宣言型の制約です。 -</p> - -<source><![CDATA[ - <security-constraints> - <security-constraints-ref>global-view</security-constraints-ref> - <security-constraint> - <groups>accounting</groups> - <permissions>view, edit</permissions> - </security-constraint> - </security-constraints> -]]></source> - -<p> -全てのセキュリティ制約は、<b><i>security-constraints</i></b> 内に記述しなければなりません。 -</p> -</section> -<section name=' フラグメントの制約'> - -<p> -ページのセキュリティ制約と同様に、フラグメントのセキュリティ制約は、<b><i>PSML</i></b> ファイル内の <b><i>security-constraints リスト</i></b> に記述されます。この記述は省略可能です。期待通り、セキュリティの制約のリストがない場合は、フラグメントは、自身が属するページの制約を継承します。view パーミッションだけがフラグメントの制約に対してチェックされることに注意してください。他のパーミッションは含まれるページに対してのみテストされます。 -</p> -</section> -<section name=" Spring の設定"> - -<p> -宣言型のセキュリティ制約は、デフォルトでページマネージャコンポーネントの Spring の設定で有効になります。以下に、<b><i>page-manager.xml</i></b> という Spring の部品設定ファイルのデフォルトのページマネージャ bean の設定を示します。 -</p> - -<source><![CDATA[ - <bean id="org.apache.jetspeed.page.PageManager" - name="pageManager" - class="org.apache.jetspeed.page.psml.CastorXmlPageManager"> - <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg> - <constructor-arg index="1"><ref bean="DocumentHandlerFactory"/></constructor-arg> - <constructor-arg index="2"><ref bean="FolderHandler"/></constructor-arg> - <constructor-arg index="3"><ref bean="PageFileCache"/></constructor-arg> - <!-- permissions security enabled flag, default=false --> - <constructor-arg index="4"><value>false</value></constructor-arg> - <!-- 制約セキュリティモデルの有効フラグ、デフォルト true --> - <constructor-arg index="5"><value>true</value></constructor-arg> - </bean> -]]></source> - -<p> -この例の 6 番目 (index="5") の真偽値のコンストラクタ引数が、"制約セキュリティ" モデルを有効にするかどうかの指定を行うものです。もし、宣言型のセキュリティ制約が有効でないのなら、全てのインライン、参照型、グローバルのセキュリティ制約は無視されます。 -</p> -</section> - -</body> -</document> Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-simple-portlet.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-simple-portlet.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-simple-portlet.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,144 +0,0 @@ -<?xml version="1.0"?> -<!-- - Copyright 2004 The Apache Software Foundation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<document> - <properties> - <title> PALポータルで動かす簡単なポートレットのガイド</title> - <subtitle> 簡単なポートレットを作るための文書</subtitle> - <authors> - <person name="David Le Strat" email="dlest****@apach*****" /> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> - <section name=" PALポータルで動かす簡単なポートレットのガイド"> - - <p> - このガイドは、とても簡単なポートレットを作成するためのチュートリアルです。ポートレットの開発者は以下のような順序で開発を行います。 - </p> - <subsection name=" 1. ポートレットクラス"> - - <p> - simplest/WEB-INF/classes ディレクトリに Simplest.java というファイルを以下のように作成してください。 - <source> -public class Simplest extends javax.portlet.GenericPortlet -{ - public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response) - throws javax.portlet.PortletException, java.io.IOException - { - response.setContentType("text/html"); - response.getWriter().println("A very simple portlet."); - } -} - </source> - </p> - - <p> - 以下のようにコマンドを入力してクラスをコンパイルしてください。 - <source> -javac -cp ~/.maven/repository/org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar Simplest.java - </source> - </p> - </subsection> - <subsection name=" 2. portlet.xml"> - - <p> - simplest/WEB-INF ディレクトリに portlet.xml ファイルを作成してください。 - <source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<portlet-app id="simplest" version="1.0"> - <portlet id="Simplest"> - <portlet-name>Simplest</portlet-name> - <display-name>Simple Display Name</display-name> - <portlet-class>Simplest</portlet-class> - <supports> - <mime-type>text/html</mime-type> - <portlet-mode>VIEW</portlet-mode> - </supports> - <supported-locale>en</supported-locale> - <portlet-info> - <title>Simple Title</title> - <short-title>The world's simplest portlet</short-title> - </portlet-info> - </portlet> -</portlet-app>]]> - </source> - </p> - </subsection> - <subsection name=" 3. web.xml"> - - <p> - simplest/WEB-INF ディレクトリに web.xml ファイルを作成してください。 - <source><![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" - "http://java.sun.com/dtd/web-app_2_3.dtd"> -<web-app> - <display-name>Simplest</display-name> - <description>The world's simplest portlet</description> -</web-app>]]> - </source> - </p> - </subsection> - <subsection name=" 4. PSML ファイル"> - - <p> - あなたの PALポータルポータルディレクトリ以下の src/webapp/WEB-INF/pages ディレクトリに simplest.psml ファイルを作成してください。portlet-app id と portlet-name はポートレットフラグメントを特定するために結合されます。あなたのポータルをリビルドしてください。 - <source><![CDATA[ -<page> - <defaults - skin="orange" - layout-decorator="tigris" - portlet-decorator="tigris" - /> - <title>The simplest portlet in the world</title> - <metadata name="title" xml:lang="fr">La plus simple portlet du monde</metadata> - - <fragment id="simplest" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> - <fragment id="simplest-1" type="portlet" name="simplest::Simplest"> - <property layout="TwoColumns" name="row" value="0" /> - <property layout="TwoColumns" name="column" value="0" /> - </fragment> - </fragment> - - <security-constraints> - <security-constraints-ref>public-view</security-constraints-ref> - </security-constraints> -</page>]]> - </source> - </p> - </subsection> - <subsection name=" 5. WAR ファイル"> - - <p> - simplest ディレクトリで、以下のようなコマンドを実行して、以上のファイルを war ファイルにまとめてください。 - <source> -jar cvf ../simplest.war . - </source> - </p> - </subsection> - <subsection name=" 6. WAR ファイルの配備"> - - <p> - war ファイルを <code>$CATALINA_HOME/webapps/jetspeed/WEB-INF/deploy</code> にコピーしてください。PALポータルは webapp を配備します。ブラウザで - <code>http://localhost:8080/jetspeed/portal/simplest.psml</code> にアクセスしてください。 - </p> - </subsection> - </section> - </body> -</document> Deleted: pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-user-attributes.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-user-attributes.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-user-attributes.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -1,149 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright 2004 The Apache Software Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<document> - <properties> - <title> ユーザ属性定義のガイド</title> - <subtitle> PLT.17 ユーザ情報に関する設定</subtitle> - <authors> - <person name="Ate Douma" email="ate****@douma*****"/> - </authors> - <translators> - <person name="加藤泰文" email="karma****@prog*****" /> - </translators> - </properties> - <body> - <section name=" ユーザ属性の定義"> - - <p> - ポートレット仕様はどのようにしてポートレットアプリケーションがユーザ属性を使用できるのかについて定義をしています。属性は portlet.xml で以下のように定義されます (PLT.17.1 参照)。</p> - - <source><![CDATA[ -<portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> - <user-attribute> - <description>User Given Name</description> - <name>user.name.given</name> - </user-attribute> - <user-attribute> - <description>User Last Name</description> - <name>user.name.family</name> - </user-attribute> - <user-attribute> - <description>User eMail</description> - <name>user.home-info.online.email</name> - </user-attribute> - ... -</portlet-app>]]></source> - - <p> - このように属性が定義されると、ポートレットは PortletRequest インタフェース (PLT.17.2 参照) で定義された USER_INFO 定数を使って PortletRequest から変更できない Map としてログインしているユーザの現在値にアクセスすることが可能になります。 - </p> - - <source> -Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); -String givenName = (userInfo!=null) ? (String)userInfo.get("user.name.given") : ""; -String lastName = (userInfo!=null) ? (String)userInfo.get("user.name.family") : ""; -String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : "";</source> - - <p> - ポートレット仕様で定義されないのは、ポータルが定義されたユーザ属性をユーザの具体的な属性にどのようにマッピングするかということです。 - </p> - </section> - <section name=" ユーザ属性のマッピング"> - - <p> - PALポータルは具体的なユーザ属性を定義したり、そのユーザ属性へのアクセスを定義したりするためにとても柔軟な方法を提供しています。</p> - - <p> - 具体的なユーザ属性は PALポータルが情報を格納しておくためのデータベースバックエンドとしている User Preferences を使って格納されます (これは PALポータルの殆んどのコンポーネントと同じような方法でカスタマイズできます)。ユーザ属性の実装は PALポータルの <a href="multiproject/jetspeed-prefs/index.html">java.util.prefs.Preferences</a> の実装を利用しています。<br/> - 具体的なユーザ属性は User preferences 内の特定のノード下に格納されます。そして任意の名前の属性を自由に含むことができます。<br/> - これらの具体的なユーザ属性は portlet.xml 内で以下のような 2 つの方法で定義されたユーザ属性にマップされます。 - <ol> - <li> - 属性名との完全一致の使用 - </li> - <li> - jetspeed-portlet.xml 内で定義されるカスタムマッピングの使用 - </li> - </ol> - </p> - <subsection name=" カスタムのユーザ属性マッピング"> - - <p> - もし対象とするポータルとして PALポータルを利用して新しいポートレットアプリケーションを書いたのなら、ポータル内で具体的なユーザ属性と一致する User Attributes を定義することは簡単でしょう。<br/> - しかし、もし既に存在するポートレットアプリケーションを PALポータル上に配備したいのなら、ポートレットアプリケーションに必要な属性名と PALポータルの User Preferences に格納される具体的な属性名の間のミスマッチがあるかもしれません。 - </p> - - <p> - <em> - 注意: ポートレット仕様は Appendix PLT.D. で推奨される属性名のセットを定義しています。<br/> - これらの属性名を使ったポートレットアプリケーションと具体的なユーザ属性をこれらの名前を使って格納しているポータルは以下で述べるようなカスタムの属性のマッピングを使う必要は一切ありません。<br/> - PALポータルは具体的なユーザ属性を全く自由に定義することができますが、可能な限りこれらのあらかじめ定義された属性を使うことが推奨されます。</em></p> - - <p> - jetspeed-portlet.xml に jetspeed 特有の設定やカスタマイズを記述することができます。<br/> - このドキュメントの配備は必須ではありません。しかし、もしポートレットアプリケーションの war ファイル内の WEB-INF フォルダにこのドキュメントが見付かれば、処理が行われます。<br/> - PALポータル特有の設定は "http://portals.apache.org/jetspeed" 名前空間を使って定義しなければなりません。 - </p> - - <p> - ユーザ属性のマッピングはカスタムのユーザ属性名を定義する "name" エレメントと、その属性名にマップされる具体的な属性名を定義する"name-link" エレメントを含む "user-attribute-ref" エレメントによって定義されます。 - </p> - - <source><![CDATA[ -<portlet-app version="1.0" - xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" - xmlns:js="http://portals.apache.org/jetspeed"> - <js:user-attribute-ref> - <js:name>user-name-given</js:name> - <js:name-link>user.name.given</js:name-link> - </js:user-attribute> - <js:user-attribute-ref> - <js:name>user-name-family</js:name> - <js:name-link>user.name.family</js:name-link> - </js:user-attribute> - ... -</portlet-app>]]></source> - - <p> - 先の例のようなカスタムのマッピングを使って、ポートレットは次のようにユーザ属性にアクセスできます。</p> - - <source> -Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); -String givenName = (userInfo!=null) ? (String)userInfo.get("user-name-given") : ""; -String lastName = (userInfo!=null) ? (String)userInfo.get("user-name-family") : ""; -String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : "";</source> - - <p> - カスタムのマッピングが定義されていない (ログオンしているユーザのために定義されている具体的な属性が提供されている) email 属性も完全一致でのアクセスが可能であることに注意してください。 - </p> - </subsection> - </section> - <section name=" PALポータルでのユーザ属性の定義"> - - <p> - PALポータルにはユーザ管理を含むいくつかの管理ポートレットがあります。<br/> - ユーザ管理ポートレットを使って、非常に簡単にユーザに対する具体的な属性を定義したり修正したりできます。 - </p> - <img src="../images/definingUserAttributes.jpg"/> - - <p> - デフォルトの PALポータルで配備され、スタートページに表示される、ユーザ情報テスト (User Info Test) デモポートレットは前述の例のユーザ属性定義を使い、ログオンユーザの値を表示しています。(これらの値はサーブレット内の HttpServletRequest と PortletRequest の両方からアクセス可能であることを示しています) - </p> - <img src="../images/usingUserAttributes.jpg"/> - </section> - </body> -</document> Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/atn-arch-c.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/atn-arch-c.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/credential-handler-c.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/credential-handler-c.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/default-login-module-c.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/default-login-module-c.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/loginprocess.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/loginprocess.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/principals-credentials-schema.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/principals-credentials-schema.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/rdbms-policy-overview-c.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/rdbms-policy-overview-c.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/security-arch-overview.gif =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/images/security-arch-overview.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: pal-portal/docs/ja/configuration-guide/trunk/xdocs/navigation.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/navigation.xml 2008-09-12 00:00:32 UTC (rev 1160) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/navigation.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -27,11 +27,20 @@ <item name="ログの設定" href="config/log.html"/> <item name="メールサーバーの設定" href="config/mail.html"/> <item name="セッション共有" href="config/session.html"/> +<!-- SSL switch --> </menu> <menu name="データベース"> <item name="概要" href="db/guide.html"/> <item name="設定" href="db/config.html"/> </menu> + <menu name="セキュリティ"> + <item name="概要" href="security/guide.html"/> + <item name="設定ファイル" href="security/config.html"/> + <item name="ログイン" href="security/login.html"/> + <item name="資格管理" href="security/credential.html"/> + <item name="ポートレットからの利用" href="security/portlet.html"/> +<!-- Authentication Filter --> + </menu> <menu name="デザイン"> <item name="概要" href="design/guide.html"/> <item name="レイアウトテンプレート" href="design/layout.html"/> @@ -43,7 +52,21 @@ <menu name="ポートレット"> <item name="概要" href="portlet/guide.html"/> <item name="配備" href="portlet/deploy.html"/> + <item name="ポータル機能の利用" href="portlet/portal.html"/> + <item name="JSR 168 ポートレット" href="portlet/portlet.html"/> </menu> + <menu name="PSML"> + <item name="概要" href="psml/guide.html"/> + <item name="セキュリティ" href="psml/security.html"/> + <item name="メニュー" href="psml/menu.html"/> + </menu> + <menu name="プロファイラー"> + <item name="概要" href="profiler/guide.html"/> + <item name="プロファイリングルール" href="profiler/profilingrule.html"/> + </menu> + <menu name="ユーザー属性"> + <item name="概要" href="userattribute/guide.html"/> + </menu> <menu name="Ajax"> <item name="概要" href="ajax/guide.html"/> <item name="API" href="ajax/api.html"/> @@ -52,15 +75,17 @@ <item name="概要" href="batch/guide.html"/> <item name="ユーザー情報" href="batch/usermanager.html"/> </menu> + <menu name="Appendix"> + <item name="jetspeed-portlet.xsd" href="appendix/jetspeed-portlet.html"/> + </menu> <!-- -ログインプロセス JAAS -プロファイラ -PSML -クラスタ +統計 LDAP -SSO -統計 +SSO Cookie filter SEO +集約 +パイプライン +クラスタ --> </body> </project> Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portal.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portal.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portal.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>ポートレット</title> + <subtitle>ポータル機能の利用</subtitle> + <authors> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="ポータル機能の利用について"> + <p> +ポートレット開発において、ポートレットからポータル固有の機能を呼び出したい場合もあるかと思います。 +PALポータルでは、ポートレット内でポータル固有の機能を呼び出す仕組みを提供しています。 + </p> + </section> + <section name="RequestContext"> + <p> +RequestContext は、クライアントからのリクエストを処理するために PALポータルが利用するリクエストのインスタンスです。 +RequestContext はパイプラインに渡されて、パイプライン内の各バルブで処理がされ、様々な設定情報を保持しています。 +ポートレットから RequestContext を呼び出すことで、ポータルの様々な情報にアクセスすることができます。 + </p> + <p> +RequestContext は、ポートレットの処理に渡される前に、PortletRequest のリクエスト属性として格納されます。 +ですので、ポートレット内では PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE をキーにして、PortletRequest から取得することができます。 + </p> + <p> +たとえば、呼び出し方法は以下のようになります。 + </p> + <source><![CDATA[ +RequestContext requestContext = (RequestContext) request + .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); +]]></source> + <p> +上記の方法を利用するためには、ポートレット開発において、ビルド時には jetspeed-api の jar ファイルが必要になります。 +jetspeed-api はアプリケーションサーバーに保存されるので、実行時にはポートレットの war ファイル内に含めないように注意してください。 + </p> + </section> + <section name="コンポーネント"> + <p> +PALポータルは、様々なコンポーネントにより構成されています。 +ユーザー認証を行う機能などもコンポーネント化されているので、ポートレットからもそのコンポーネントを呼び出したい場合もあるかと思います。 +そのような呼び出したいコンポーネントは、設定ファイルを追加することでポートレット内からアクセスすることができます。 + </p> + <p> +PALポータルのコンポーネントを利用したい場合は、ポータル拡張設定ファイル jetspeed-portlet.xml をポートレットの WEB-INF に配置して、利用したいコンポーネントを記述します。 +jetspeed-portlet.xml の XSD ファイルについては、Appendix を参照してください。 + </p> + <p> +たとえば、PageManager などのコンポーネントを呼び出したい場合は、jetspeed-portlet.xml は以下のようになります。 + </p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<portlet-app + xmlns="http://portals.apache.org/jetspeed" + xmlns:js="http://portals.apache.org/jetspeed" + xmlns:dc="http://www.purl.org/dc" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + id="pal-admin" version="1.0" + xsi:schemaLocation="http://portals.apache.org/jetspeed + http://portals.apache.org/jetspeed-2/2.1/schemas/jetspeed-portlet.xsd"> + <dc:title>PAL Portal Administration Portlets</dc:title> + <dc:creator>PAL Team</dc:creator> + <js:services> + <js:service name="UserManager"/> + <js:service name="PageManager"/> + <js:service name="PermissionManager"/> + </js:services> +</portlet-app> +]]></source> + <p> +呼び出したいコンポーネントは、js:service で記述します。 +これらのコンポーネントは PortalServices により管理され、利用可能なコンポーネント一覧は <code>webapps/palportal/WEB-INF/assembly/jetspeed-services.xml</code> で定義されています。 +jetspeed-services.xml は以下の通りです。 + </p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<beans> + <!-- Portlet Services --> + <bean id="PortalServices" + class="org.apache.jetspeed.services.JetspeedPortletServices" > + <constructor-arg> + <map> + <entry key="SecurityProvider"> + <ref bean="org.apache.jetspeed.security.SecurityProvider"/> + </entry> + <entry key="PortletRegistryComponent"> + <ref bean="org.apache.jetspeed.components.portletregistry.PortletRegistry" /> + </entry> + <entry key="SearchComponent"> + <ref bean="org.apache.jetspeed.search.SearchEngine"/> + </entry> + <entry key="PAM"> + <ref bean="PAM" /> + </entry> + <entry key="UserManager"> + <ref bean="org.apache.jetspeed.security.UserManager"/> + </entry> + <entry key="PageManager"> + <ref bean="org.apache.jetspeed.page.PageManager"/> + </entry> + <entry key="RoleManager"> + <ref bean="org.apache.jetspeed.security.RoleManager"/> + </entry> + <entry key="GroupManager"> + <ref bean="org.apache.jetspeed.security.GroupManager"/> + </entry> + <entry key="Profiler"> + <ref bean="org.apache.jetspeed.profiler.Profiler"/> + </entry> + <entry key="SSO"> + <ref bean="org.apache.jetspeed.sso.SSOProvider"/> + </entry> + <entry key="EntityAccessor"> + <ref bean='org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent'/> + </entry> + <entry key="WindowAccessor"> + <ref bean='org.apache.jetspeed.container.window.PortletWindowAccessor'/> + </entry> + <entry key="ApplicationServerManager"> + <ref bean="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager"/> + </entry> + <entry key="PortletFactory"> + <ref bean="portletFactory"/> + </entry> + <entry key="DeploymentManager"> + <ref bean="deploymentManager"/> + </entry> + <entry key='IdGenerator'> + <ref bean='IdGenerator'/> + </entry> + <entry key='Powertools'> + <ref bean='Powertools'/> + </entry> + <entry key="HeaderResource"> + <ref bean="org.apache.jetspeed.headerresource.HeaderResourceFactory"/> + </entry> + <entry key="TemplateLocator"> + <ref bean="TemplateLocator"/> + </entry> + <entry key="DecorationLocator"> + <ref bean="DecorationLocator"/> + </entry> + <entry key="DecorationFactory"> + <ref bean="DecorationFactory"/> + </entry> + <entry key="PermissionManager"> + <ref bean="org.apache.jetspeed.security.PermissionManager"/> + </entry> + <entry key="PortalStatistics"> + <ref bean="PortalStatistics"/> + </entry> + <entry key="PortalAdministration"> + <ref bean="PortalAdministration"/> + </entry> + <entry key="PreferencesProvider"> + <ref bean="org.apache.jetspeed.prefs.PreferencesProvider"/> + </entry> + <entry key="org.apache.jetspeed.container.session.PortalSessionsManager"> + <ref bean="org.apache.jetspeed.container.session.PortalSessionsManager"/> + </entry> + <entry key="SecurityAccessController"> + <ref bean="org.apache.jetspeed.security.SecurityAccessController"/> + </entry> + <entry key="PortletTrackingManager"> + <ref bean="org.apache.jetspeed.aggregator.PortletTrackingManager"/> + </entry> + <entry key ="PortalAuthenticationConfiguration"> + <ref bean="org.apache.jetspeed.administration.PortalAuthenticationConfiguration"/> + </entry> + <entry key ="PortalConfiguration"> + <ref bean="PortalConfiguration"/> + </entry> + <entry key="ImporterManager"> + <ref bean="importerCastorPageManager"/> + </entry> + <entry key="decorationContentCache"> + <ref bean="decorationContentCache"/> + </entry> + <entry key="portletContentCache"> + <ref bean="portletContentCache"/> + </entry> + <entry key="AuditActivity"> + <ref bean="org.apache.jetspeed.audit.AuditActivity"/> + </entry> + <entry key="JetspeedSerializerFactory"> + <ref bean="org.apache.jetspeed.serializer.JetspeedSerializerFactory"/> + </entry> + </map> + </constructor-arg> + </bean> +</beans> +]]></source> + <p> +ポートレット内での呼び出し方法は、PortletContext から取得します。 +たとえば、PageManager は以下のように取得します。 + </p> + <source><![CDATA[ +PageManager pageManager = (PageManager) getPortletContext() + .getAttribute(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT); +]]></source> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portal.xml ___________________________________________________________________ Name: svn:eol-style + native Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portlet.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-simple-portlet.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portlet.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/portlet/portlet.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<document> + <properties> + <title>ポートレット</title> + <subtitle>JSR 168 ポートレット</subtitle> + <authors> + <person name="David Le Strat" email="dlest****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="簡単なポートレットの作成"> + <p> +この節は、簡単なポートレットを作成するためのチュートリアルです。 +ポートレットの開発者は以下のような順序で開発ができます。 + </p> + <subsection name="ポートレットクラス"> + <p> +simplest/WEB-INF/classes ディレクトリに Simplest.java というファイルを以下のように作成してください。 +</p> +<source><![CDATA[ +public class Simplest extends javax.portlet.GenericPortlet +{ + public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response) + throws javax.portlet.PortletException, java.io.IOException + { + response.setContentType("text/html"); + response.getWriter().println("A very simple portlet."); + } +} +]]></source> + <p> +以下のようにコマンドを入力してクラスをコンパイルしてください。 + </p> +<source><![CDATA[ +$ javac -cp ~/.maven/repository/org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar Simplest.java +]]></source> + </subsection> + <subsection name="portlet.xml"> + <p> +simplest/WEB-INF ディレクトリに portlet.xml ファイルを作成してください。 + </p> +<source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<portlet-app id="simplest" version="1.0"> + <portlet id="Simplest"> + <portlet-name>Simplest</portlet-name> + <display-name>Simple Display Name</display-name> + <portlet-class>Simplest</portlet-class> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>VIEW</portlet-mode> + </supports> + <supported-locale>en</supported-locale> + <portlet-info> + <title>Simple Title</title> + <short-title>The world's simplest portlet</short-title> + </portlet-info> + </portlet> +</portlet-app> +]]></source> + </subsection> + <subsection name="web.xml"> + <p> +simplest/WEB-INF ディレクトリに web.xml ファイルを作成してください。 + </p> +<source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" + "http://java.sun.com/dtd/web-app_2_3.dtd"> +<web-app> + <display-name>Simplest</display-name> + <description>The world's simplest portlet</description> +</web-app> +]]></source> + </subsection> + <subsection name="WAR ファイル"> + <p> +simplest ディレクトリで、以下のようなコマンドを実行して、以上のファイルを war ファイルにまとめてください。 + </p> +<source><![CDATA[ +$ jar cvf ../simplest.war . +]]></source> + </subsection> + <subsection name="WAR ファイルの配備"> + <p> +war ファイルを <code>webapps/palportal/WEB-INF/deploy</code> にコピーしてください。 +PALポータルは webapp を配備します。 + </p> + </subsection> + <subsection name="ページに配置"> + <p> +作成したポートレットをページ上に配置してください。 +配置する方法については、「管理者ガイド」を参照してください。 + </p> + </subsection> + </section> + </body> +</document> Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/guide.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-profiler.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/guide.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/guide.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>プロファイラー</title> + <subtitle>概要</subtitle> + <authors> + <person name="David Sean Taylor" email="taylo****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="概要"> + <p> +PALポータルのプロファイラーは、ポータルのリソースの場所に関するルールベースのエンジンです。 +PALポータルでは、プロファイラーは以下のような種類のポータルリソースの場所を決定します。 +<ul><li>PSML ページ</li><li>フォルダ</li><li>メニュー</li></ul> +リクエストがポータルで受信されたとき、プロファイラーは実行時パラメータや状態 (リクエストパラメータ、HTTP ヘッダー、セッションの属性など) の正規化された値に基づき、リクエストをリソースと結びつけます。 +プロファイラーはプロファイラーバルブ内の PALポータルのリクエスト処理パイプラインの中で呼び出されます。 +このバルブは、リクエストコンテキストが既にポータルのリクエストやレスポンス、機能、言語、ユーザ情報と関連づけられている必要があります。 +実行時のパラメータは、プロファイラーがポータルのリソースを位置を決定するのに使われる判断規準を作ります。 +</p> + </section> + </body> +</document> Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/profilingrule.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/profilingrule.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/profilingrule.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>プロファイラー</title> + <subtitle>概要</subtitle> + <authors> + <person name="David Sean Taylor" email="taylo****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="プロファイリングルール"> + <p> +プロファイリングルールは、特定のリソースの場所を解決するリクエストを評価するときに使われる判断規準のリストを定義します。 +プロファイリングルールはプロファイラーが使用します。 +これは、既知のポートレットリクエストデータ用の、細分化した判断規準によるポータルリソースの位置を決定するためです。 +ルールは与えられた順序に適用される判断規準の順序つきのリストから構成されます。 +このルールの順序に従って、プロファイリングエンジンは最少のリソースの判断規準とみなせるまで、少ない記述の設定によるアルゴリズムで、それぞれのルールの判断規準を適用します。 +全ての条件が適用されつくした場合、ルールは失敗となりフォールバックリソースが要求されます。 +</p> + <subsection name="ルール規準"> + <p> +ルール規準はプロファイルのプロパティの場所を示すためのテンプレートです。 +デフォルトの実装では、リソースを特定する URL、MIME タイプ、言語の設定に基づく案で定義されたプロファイリングポリシーを持っています。 +もっと複雑な実装を行うには、Cookie や IP アドレスの範囲や統計的なリソースの利用解析やサーブレットや EJB 内部のビジネスのルールのような、リソースとマッピングされる他の入力が必要となります。 +</p> + </subsection> + <subsection name="ルール規準のリゾルバ"> + <p> + <table> + <tr> + <th>リゾルバ</th> + <th>説明</th> + </tr> + <tr> + <td>request</td> + <td>リクエストパラメータ名とのマッチングによる解決</td> + </tr> + <tr> + <td>session</td> + <td>セッションの属性名とのマッチングによる解決</td> + </tr> + <tr> + <td>request.session</td> + <td>最初にリクエストの属性名とのマッチングを行ってから、セッションの属性名とのマッチングを行って解決する</td> + </tr> + <tr> + <td>hard.coded</td> + <td>ハードコードされた値による解決</td> + </tr> + <tr> + <td>group.role.user</td> + <td>フォールバックコントローラ: 現在のユーザーグループ、次にロール、次にユーザーの所有するフォルダ以下のリソースを探す</td> + </tr> + <tr> + <td>user</td> + <td>現在のユーザーのディレクトリ内のリソースとマッチさせる</td> + </tr> + <tr> + <td>group</td> + <td>現在のグループのディレクトリ内のリソースとマッチさせる</td> + </tr> + <tr> + <td>role</td> + <td>現在のロールのディレクトリ内のリソースとマッチさせる</td> + </tr> + <tr> + <td>mediatype</td> + <td>リクエストコンテキスト内のメディアタイプとマッチさせる</td> + </tr> + <tr> + <td>country</td> + <td>リクエストコンテキスト内の国とマッチさせる</td> + </tr> + <tr> + <td>user.agent</td> + <td>リクエストコンテキスト内のユーザーエージェントとマッチさせる</td> + </tr> + <tr> + <td>language</td> + <td>リクエストコンテキスト内の言語とマッチさせる</td> + </tr> + <tr> + <td>roles</td> + <td>ロールのフォールバック</td> + </tr> + <tr> + <td>path</td> + <td>指定されたパスとマッチする</td> + </tr> + <tr> + <td>page</td> + <td>指定されたページとマッチする</td> + </tr> + <tr> + <td>path.session</td> + <td>指定されたパスまたはセッションの値とマッチする</td> + </tr> + <tr> + <td>user.attribute</td> + <td>指定されたリクエスト属性の値とマッチする</td> + </tr> + <tr> + <td>navigation</td> + <td>現在のナビゲーションパスを変える</td> + </tr> + </table> + </p> + </subsection> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/profiler/profilingrule.xml ___________________________________________________________________ Name: svn:eol-style + native Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/guide.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-psml.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/guide.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/guide.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,686 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004-2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>PSML</title> + <subtitle>概要</subtitle> + <authors> + <person name="David Sean Taylor" email="taylo****@apach*****"/> + <person name="Randy Watler" email="rwatl****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="概要"> + <p> +PSML は Portal Structure Markup Language の頭文字を取ったものです。 +PSML は PALポータル内のコンテンツの構造化と抽象化を行うために作成されます。 +PSML はポータルページ上でポートレットがどのように集約され、レイアウトされ、装飾されるかを定義します。 +ページレイアウトに関する仕様は、ポートレット API の守備範囲ではないことに注意してください。 +ですので、PSML は PALポータル特有の実装です。 +そして、PALポータルの PSML は Apache Portals Jetspeed 2 の PSML の仕様に従います。 +</p> + <p> +PSML ファイルは、ページ、フォルダ、リンクや大域的なセキュリティ制限と関係する情報も保持します。 +これらの主要な PSML の要素のそれぞれは、ファイルシステム上のディレクトリ構造内に別々のドキュメントとして保存されるか、ポータルのデータベース内に保存することもできます。 +保存先は PALポータルのインストール時に選択することができます。 +</p> + <p> +以下にポータルサイトのページ用の PSML ファイル (*.psml) の例を示します。 +</p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<page> + <!-- ページの情報 --> + <title>Welcome to PALポータル</title> + <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata> + <metadata name="title" xml:lang="es">¡Bienvenido a PALポータル!</metadata> + <metadata name="title" xml:lang="hu">Köszönti a PALポータル!</metadata> + + <!-- ページの装飾 --> + <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/> + + <!-- ページフラグメント --> + <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> + <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> + <property layout="OneColumn" name="row" value="0"/> + </fragment> + <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> + <property layout="OneColumn" name="row" value="1"/> + <property layout="TwoColumns" name="sizes" value="33%,66%"/> + <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet"> + <property layout="TwoColumns" name="row" value="0"/> + <property layout="TwoColumns" name="column" value="0"/> + </fragment> + <fragment id="100171" type="portlet" name="demo::UserInfoTest"> + <property layout="TwoColumns" name="row" value="0"/> + <property layout="TwoColumns" name="column" value="1"/> + </fragment> + </fragment> + </fragment> + + <!-- セキュリティ制限 --> + <security-constraints> + <security-constraints-ref>public-view</security-constraints-ref> + </security-constraints> +</page> +]]></source> + <p> +以下に、ポータルサイトのフォルダ (folder.metadata) 用の定義を行う PSML ファイルの例を示します。 +</p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<folder> + <!-- フォルダの説明 --> + <title>Root Folder</title> + <metadata name="title" xml:lang="fr">Répertoire racine</metadata> + <metadata name="title" xml:lang="es">Carpeta raiz</metadata> + + <!-- フォルダ内のドキュメントの順序 --> + <document-order>Jetspeed2.link</document-order> + <document-order>Jetspeed2Wiki.link</document-order> + <document-order>apache_portals.link</document-order> + <document-order>apache.link</document-order> + + <!-- ポータルサイトのメニュー --> + <menu name="page-navigations"> + <separator> + <text>Top Pages</text> + <metadata name="text" xml:lang="fr">Page haut</metadata> + <metadata name="text" xml:lang="es">Páginas más populares</metadata> + </separator> + <options>/Administrative</options> + <separator> + <text>Profiled Pages</text> + <metadata name="text" xml:lang="es">Páginas del Perfil</metadata> + </separator> + <options regexp="true">/p[0-9][0-9][0-9].psml</options> + <separator> + <text>Non Java Pages</text> + <metadata name="text" xml:lang="es">Ejemplos sin java</metadata> + </separator> + <options>/non-java</options> + </menu> + + <!-- セキュリティ制限 --> + <security-constraints> + <security-constraints-ref>public-view</security-constraints-ref> + </security-constraints> +</folder> +]]></source> + <p> +以下に、ポータルサイトのリンク (*.link) 用の PSML ファイルの例を示します。 +</p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<link target="top"> + <!-- リンクの説明 --> + <title>PALポータルHome Page</title> + <url>http://portals.apache.org/jetspeed-2/</url> + <metadata name="title" xml:lang="es">PALポータル</metadata> +</link> +]]></source> + <p> +以下に、ポータルサイトのページのセキュリティ (page.security) 用の PSML ファイルの例を示します。 +</p> + <source><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<page-security> + <!-- 大域的な管理者の制限 --> + <security-constraints-def name="admin"> + <security-constraint> + <roles>admin</roles> + <permissions>view, edit</permissions> + </security-constraint> + </security-constraints-def> + <global-security-constraints-ref>admin</global-security-constraints-ref> + + <!-- パブリックな制限 --> + <security-constraints-def name="public-view"> + <security-constraint> + <users>*</users> + <permissions>view</permissions> + </security-constraint> + </security-constraints-def> + <security-constraints-def name="public-edit"> + <security-constraint> + <users>*</users> + <permissions>view, edit</permissions> + </security-constraint> + </security-constraints-def> +</page-security> +]]></source> + </section> + <section name=" ページ"> + <p> +<page> 要素は、ポータルサイトのページに関連する他の PSML 要素を保持するための単純な入れ物です。 +この要素は、親であるフォルダを構成する適切なファイルシステムディレクトリ内に、'.psml' という拡張子を持つファイルとして存在します(PSML をファイルシステム保存した場合)。 +2 つの有効な属性がページエレメントの属性として存在します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>hidden</td> + <td>ページがポータルサイトのサイトメニューまたは他のナビゲーション用の要素に表れるかどうかを指示するための真偽値の属性。</td> + </tr> + <tr> + <td>version</td> + <td>一般的な目的のバージョントラッキングのための属性。PALポータルでは現在使われていません。</td> + </tr> + </table> + <p> +<page> 要素は多くの他の PSML 要素を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>title?</td> + <td>デフォルトのページタイトルを表すテキストを含む単純な要素。ページのタイトルは、その長い説明とみなされます。もしメニューテキスト用の短いタイトルが利用可能であれば、一部のデコレータでロールオーバー用のテキストとして使われます。もし指定されていなければ、PALポータルは page 要素を含むファイルのファイル名からタイトルを決めようと試みます。</td> + </tr> + <tr> + <td>short-title?</td> + <td>ページのデフォルトの短いタイトルのテキストを含む単純で省略可能な要素。短いタイトルは、もし利用可能であれば、一部のデコレータ内のメニューテキストとして使われます。もし指定されない場合は title のテキストが使われます。</td> + </tr> + <tr> + <td> + defaults + </td> + <td>ページとそのフラグメントのための装飾を指定します。defaults はページ毎に必要です。</td> + </tr> + <tr> + <td> + fragment + </td> + <td>フラグメントの階層構造のルート。全てのページにルートのフラグメントが必要です。</td> + </tr> + <tr> + <td>metadata*</td> + <td>省略可能の指定である、ページ用のロケール特有のタイトルと短いタイトル。</td> + </tr> + <tr> + <td>menu*</td> + <td>省略可能の指定である、ページ用の追加または上書きされた継承したメニュー定義の指定。</td> + </tr> + <tr> + <td>security-constraints?</td> + <td>省略可能の定義である、ページ用のインラインのセキュリティ制限の定義。もし指定されなければ、ページは親フォルダ内の有効なセキュリティ制限を継承します。</td> + </tr> + </table> + <p>例: 「概要」で示した例を参照してください。</p> + </section> + <section name="デフォルト"> + <p> +ページ内の <defaults> 要素は、デフォルトのレイアウトデコレータと、デフォルトのポートレットデコレータを定義します。 +デフォルトのレイアウトデコレータは、デコレータ属性を持たない全てのレイアウトフラグメントに対して適用されます。 +デフォルトのポートレットデコレータは、デコレータ属性を持たない全てのポートレットフラグメントに対して適用されます。 +defaults 要素には 3 つの有効な属性があります。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>layout-decorator</td> + <td>ページをレンダリングするときに使うレイアウトデコレータの名前。この属性は必須です。</td> + </tr> + <tr> + <td>portlet-decorator</td> + <td>ページフラグメントをレンダリングするときに使うデフォルトのポートレットデコレータの名前。この属性は省略可能ですが、ほとんどいつも設定します。</td> + </tr> + <tr> + <td>skin</td> + <td>ページやフラグメントの表示を制御するためにデコレータ内で参照される一般的な目的のデコレータ属性。現時点では PALポータルでは使用していません。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<page> + ... + <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/> + ... +</page> +]]></source> + </section> + <section name="レイアウトフラグメント"> + <p>ページのレイアウト <fragment> 要素は階層構造のコンテナです。 +これはポートレットフラグメントと、階層化されたレイアウトフラグメントを保持するのに使われます。 +ページのルートのフラグメントは、ページに 1 つしかポートレットがないときでも、レイアウトフラグメントでなければなりません。 +レイアウトフラグメントは親となるレイアウトフラグメントのレイアウトに従属します。 +ですので、 "row" と "column" のレイアウトプロパティをサポートします。 +加えて、レイアウトフラグメントは 'sizes' レイアウトプロパティもサポートします。 +これは、複数列のレイアウトの列の割合をコントロールするのに使われます。 +この要素には 3 つの必須の属性があります。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>id</td> + <td>必須である id は、フラグメントを特定するのに使います。そして、サイト内で定義される全てのフラグメントに渡ってユニークでなければなりません。この値は PALポータルに対して透過的でなく、一意性を保証するためのどのような仕様にも従うことが可能です。フラグメントは PALポータルで内部的にキャッシュされる可能性があるので、既存のページに対する任意の編集が、PALポータルが行う変更を保証するために新しい id を必要とするかも知れません。</td> + </tr> + <tr> + <td>type</td> + <td>この必須の属性はレイアウトフラグメント全てで 'layout' と指定しなければなりません。</td> + </tr> + <tr> + <td>name</td> + <td>必須であるポートレット名は、フラグメントレイアウトを実装するのに使われます。ポートレット名は一般的に、portlet.xml ファイルで指定された 'portlet-app-id::portlet-id' の形を取ります。 + </td> + </tr> + </table> + <p> +レイアウト <fragment> 要素はたくさんの他の PSML 要素を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td> + fragment* + </td> + <td>指定された fragment 要素は、レイアウトフラグメントによってレイアウトされるポートレットフラグメント、または階層化されたレイアウトフラグメントのどちらにも成り得ます。全ての子フラグメントにはこのレイアウトの位置を指定するための property 要素が必須です。レイアウトフラグメント内に指定されるフラグメントがない場合は結果としてコンテンツは生成されません。</td> + </tr> + <tr> + <td> + property* + </td> + <td>レイアウトフラグメントは省略可能で 'sizes' プロパティを持つことが可能です。これは複数列の形状の明細を指定するのに使うことが可能です。階層化されたレイアウトフラグメントは、親レイアウト内の位置を特定するために 'row' または 'column' またはその両方のプロパティも持つかもしれません。</td> + </tr> + <tr> + <td>security-constraints?</td> + <td>フラグメントとそのフラグメントの子フラグメントに対して、省略可能なインラインのセキュリティ制限を定義します。ページ、リンクの制約と違って、'view' パーミッションのみが制限されます。もし指定されなければ、フラグメントはページ内で有効なセキュリティ制限を継承します。</td> + </tr> + </table> + <p>例:</p> +<source><![CDATA[ +<page> + ... + <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> + <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> + <property layout="OneColumn" name="row" value="0"/> + </fragment> + <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> + <property layout="OneColumn" name="row" value="1"/> + <property layout="TwoColumns" name="sizes" value="33%,66%"/> + <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet"> + <property layout="TwoColumns" name="row" value="0"/> + <property layout="TwoColumns" name="column" value="0"/> + </fragment> + <fragment id="100171" type="portlet" name="demo::UserInfoTest"> + <property layout="TwoColumns" name="row" value="0"/> + <property layout="TwoColumns" name="column" value="1"/> + </fragment> + </fragment> + </fragment> + ... +</page> +]]></source> + </section> + <section name="ポートレットフラグメント"> + <p>ポートレットの <fragment> 要素は、ページのポートレットを識別するために使われます。 +ポートレットフラグメントは、親レイアウトフラグメントのレイアウトの影響を受けます。 +ですので、レイアウトで定められている 'row' と 'column' のレイアウトプロパティをサポートします。 +この要素に対しては多数の有効な属性が存在します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>id</td> + <td>必須である id は、フラグメントを特定するのに使います。そして、サイト内で定義される全てのフラグメントに渡って、ユニークでなければなりません。この値は PALポータルに対して透過的でなく、一意性を保証するためのどのような仕様にも従うことが可能です。フラグメントは PALポータルで内部的にキャッシュされる可能性があるので、既存のページに対する任意の編集が、PALポータルが行う変更を保証するために新しい id を必要とするかも知れません。</td> + </tr> + <tr> + <td>type</td> + <td>この必須の属性は全てのポートレットフラグメントで 'portlet' と指定しなければなりません。</td> + </tr> + <tr> + <td>name</td> + <td>必須であるポートレット名は、フラグメントコンテンツを流し込むのに使われます。ポートレット名は一般的に portlet.xml ファイルで指定された 'portlet-app-id::portlet-id' の形を取ります。</td> + </tr> + <tr> + <td>skin</td> + <td>フラグメントの表示のコントロールのための、ポートレットデコレータ内で参照する可能性のある一般的な目的のデコレータ属性。現時点では PALポータルでは使っていません。</td> + </tr> + <tr> + <td>decorator</td> + <td>デフォルトのポートレットデコレータ名は、フラグメントのレンダリングに使われます。この属性は省略可能です。しかし、この属性が指定されない場合は、ページの defaults がデフォルトのポートレットデコレータを指定します。</td> + </tr> + <tr> + <td>state</td> + <td>フラグメントポートレットの初期状態; 現時点ではこの属性に対しては、唯一 'hidden' が有効な値です。</td> + </tr> + </table> + <p> +ポートレットの <fragment> 要素は他の PSML 要素を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td> + property* + </td> + <td>親フラグメントは、親レイアウト内の位置を特定するために、'row' または 'column' またはその両方のプロパティを持てます。</td> + </tr> + <tr> + <td>title?</td> + <td>フラグメントポートレットのタイトルを含む、省略可能で単純なテキストの要素。portlet.xml でセットされたタイトルを上書きします。</td> + </tr> + <tr> + <td> + preference* + </td> + <td>フラグメントポートレットにたいして、設定される初期のユーザプリファレンスを指定します。portlet.xml 内で指定された、どのようなポートレットプリファレンスも上書きされます。</td> + </tr> + <tr> + <td>security-constraints?</td> + <td>フラグメントに対するインラインのセキュリティ制限を省略可能で定義します。ページ、フォルダの制約と違って、'view' パーミッションだけを制限できます。もし指定されない場合は、そのフラグメントは page 内で有効なセキュリティ制限を継承します。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn"> + ... + <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector"> + <property layout="OneColumn" name="row" value="0"/> + </fragment> + ... +</fragment> +]]></source> + </section> + <section name="フラグメントのプロパティ"> + <p>フラグメントの <property> 要素はフラグメントのプロパティの名前を指定するのに使われます。 +これらのプロパティは一般にレイアウトポートレットのパラメータとページ内のポートレットの位置を指定するために使われます。 +プロパティ要素は 3 つの属性をサポートします。</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>layout <i>(廃止予定)</i> </td> + <td>プロパティが紐付いているフラグメントポートレットの識別名。この属性は互換性のために用意されています。レイアウトとポートレットフラグメントの厳密な階層構造は、どのような単一のフラグメントとそのプロパティも、 1 つのレイアウトポートレットの影響下にある可能性があることを意味します。</td> + </tr> + <tr> + <td>name</td> + <td>フラグメントプロパティの名前。PALポータルのレイアウトポートレットは 'row'、'column'、'sizes' プロパティをサポートします。</td> + </tr> + <tr> + <td>value</td> + <td>フラグメントプロパティの値。'row' と 'column' プロパティはゼロベースの指標値を受け取ります。'sizes' プロパティは HTML frameset タグの 'rows' と 'cols' 属性の書式 (例えば '25%,75%' 等) を受け取ります。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<fragment id="100876" type="portlet" name="j2-admin::LoginPortlet"> + ... + <property layout="TwoColumns" name="row" value="2"/> + <property layout="TwoColumns" name="column" value="1"/> + ... +</fragment> +]]></source> + <source><![CDATA[ +<fragment id="103456" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> + ... + <property layout="TwoColumns" name="sizes" value="33%,66%"/> + ... +</fragment> +]]></source> + </section> + <section name="プリファレンス"> + <p>ポートレットフラグメントの <preference> 要素は、ポートレットプリファレンスを定義します。 +これは、ポートレットアプリケーションの portlet.xml 内に、ポートレットの定義を何度も行う必要なく、ページ上のポートレットインスタンス用に、デフォルトのポートレットプリファレンスの設定を、簡単に行う手段を提供します。 +</p> + <p> +プリファレンスの優先度: ユーザ定義 > フラグメント定義 > portlet.xml での定義 +</p> + <p> +<preference> 要素の属性は以下のようなものです。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>name</td> + <td>プリファレンスの名前。</td> + </tr> + <tr> + <td>readOnly</td> + <td>ユーザがこのプリファレンス値を変えることができるかどうかを示す真偽値。</td> + </tr> + </table> + <p><preference> 要素は以下の要素を含みます。</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>value+</td> + <td>指定したプリファレンスと関係する値を含む単純なテキスト要素。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<fragment id="uhtemp-1012" type="portlet" name="demo::BookmarkPortlet"> + ... + <preference name="Google" readOnly="false"> + <value>http://www.google.com</value> + </preference> + ... +</fragment> +]]></source> + </section> + <section name="フォルダ"> + <p> +<folder> 要素は、ポータルサイトのフォルダと関連する他の PSML 要素を保持する単純な入れ物です。この要素は、関連するファイルシステムディレクトリ内の folder.metadata ファイルとして存在します。フォルダの要素には 2 つの有効な属性が存在します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>hidden</td> + <td>フォルダが、ポータルサイトのメニューや他のナビゲーション用の要素に、表示されるかどうかを示す真偽値の属性。</td> + </tr> + <tr> + <td>version</td> + <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> + </tr> + </table> + <p><folder> 要素は多くの他の PSML 要素を含みます。</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>title?</td> + <td>デフォルトのフォルダのタイトルを含む単純な要素。フォルダのタイトルは、自身の長い説明とみなされます。もし短いタイトル名が利用可能であれば、一部のデコレータでロールオーバー用のテキストとして使われます。もし指定されていなければ、PALポータルはフォルダ要素を含むファイル名からタイトルを決めようと試みます。</td> + </tr> + <tr> + <td>short-title?</td> + <td>フォルダのデフォルトの短いタイトルのテキストを含む省略可能な単純要素。もし短いタイトルが利用可能であれば、一部のデコレータでメニューテキストとして使われます。もし指定されない場合は、title のテキストが使われます。</td> + </tr> + <tr> + <td>default-page?</td> + <td>フォルダのデフォルトページまたはサブフォルダのテキストを含む単純で省略可能な要素。デフォルトページは、フォルダが直接ポータルから参照されるときに使われます。このフォルダ内のどのようなページやフォルダを (親フォルダとして使われる「..」も含む) 指定することも可能です。もしデフォルトページが設定されない場合は、「default-page.psml」が使われます。もし 「default-page.psml」が存在しない場合は、フォルダ内の最初のページがデフォルトになります。</td> + </tr> + <tr> + <td>document-order*</td> + <td>ページ、サブフォルダ、リンクといった構成要素のソートの順番を定義するのに使われる、構成要素のテキスト名を含む単純で省略可能な要素。名前にマッチする構成要素は、その要素が定義された順番に配置されます。他の構成要素は名前でソートされます。そして、メニューや他のリストでは、一致した構成要素の後に表示されます。正規表現による一致はサポートしません。</td> + </tr> + <tr> + <td>metadata*</td> + <td>省略可能の指定である、ロケール固有のフォルダのタイトルや短いタイトル。</td> + </tr> + <tr> + <td>menu*</td> + <td>省略可能の指定である、追加の、または継承したものを上書きするフォルダのメニュー定義。</td> + </tr> + <tr> + <td>security-constraints?</td> + <td>省略可能の定義である、フォルダ用のインラインのセキュリティ制限の定義。もし指定されなければ、フォルダは親フォルダ内の有効なセキュリティ制限を継承します。</td> + </tr> + </table> + <p>例: 「概要」の例を参照してください。</p> + </section> + <section name="リンク"> + <p> +<link> 要素は、ポータルサイトの外部のコンテンツを参照するのに使われるポータルリンクに関連づけられている、他の PSML 要素を保持するシンプルな入れ物です。この要素は、親フォルダと関連づけられている、適切なファイルシステムのディレクトリ内に存在する「.link」という拡張子のファイルとして存在します。この要素には 2 つの有効な属性があります。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>target</td> + <td>省略可能の指定である、外部コンテンツを開くための対象となるフレームの名前。もし指定されなければ、リンクされたコンテンツはブラウザで開いているポータルと置き換わります。</td> + </tr> + <tr> + <td>version</td> + <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> + </tr> + </table> + <p> +<link> 要素は多数の他の PSML 要素を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>title?</td> + <td>デフォルトのリンクタイトル用のテキストを含むシンプルな要素。リンクのタイトルは、その長い説明とみなされます。もしメニューテキスト用の短いタイトルが利用可能であれば、一部のデコレータでロールオーバー用のテキストとして使われます。もし指定されていなければ、PALポータルは link 要素を含むファイルのファイル名からタイトルを決めようと試みます。</td> + </tr> + <tr> + <td>short-title?</td> + <td>リンクのデフォルトの短いタイトルのテキストを含む単純で省略可能な要素。もし短いタイトルが利用可能であれば、一部のデコレータでメニューテキストとして使われます。</td> + </tr> + <tr> + <td>url</td> + <td>コンテンツの URL のための必須の要素。この要素のテキストは、指定されたブラウザの対象フレームをナビゲートするのに使われます。</td> + </tr> + <tr> + <td>metadata*</td> + <td>省略可能の指定である、ロケール固有のリンクのタイトルや短いタイトル。</td> + </tr> + <tr> + <td>security-constraints?</td> + <td>省略可能の指定である、リンクのためのセキュリティ制限。もし指定されなければ、リンクは親フォルダ内の有効なセキュリティ制限を継承します。</td> + </tr> + </table> + <p>例: 「概要」の例を参照してください。</p> + </section> + <section name=" グローバルなページのセキュリティ"> + <p> +<page-security> 要素はグローバルなセキュリティ制限と、その定義を宣言するために使われる、他の PSML 要素を保持するためのシンプルな入れ物です。この要素は page.security ファイルとして存在し、常に PSML ファイルのシステムディレクトリのルートディレクトリに存在します。page-security 要素の有効な属性は 1 つだけ存在します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>version</td> + <td>一般的な用途のバージョントラッキングの属性。現時点では PALポータルでは使われていません。</td> + </tr> + </table> + <p> +<page-security> 要素は PSML 要素に関連する 2 つのセキュリティ制限を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>security-constraints-def*</td> + <td>省略可能の定義である、セキュリティ制限のコレクションの名前。これらのセキュリティ制限はページ、フラグメント、フォルダ、リンク内で、そして再利用とセキュリティのメンテナンスを容易にするために、この要素内で参照されます。</td> + </tr> + <tr> + <td>global-security-constraints-ref*</td> + <td>サイト内の全てのセキュリティ制限を適用するための、省略可能の定義であるセキュリティ制限参照。それぞれのシンプルな要素のテキストは、このエレメント内のここで指定された名前のセキュリティ制限の定義を参照します。</td> + </tr> + </table> + <p>例: 「概要」の例を参照してください。</p> + </section> + <section name=" PSML タイトルとメタデータ"> + <p>ページ, フォルダ, リンクの <metadata> 要素はロケール特有のタイトルと短いタイトルのテキストを定義するのに使われます。これらの要素は何度でも、含まれる PSML 要素内で表れるかもしれません。しかし、複数の値が 1 つのロケールにたいして指定してはいけません。PSML XML 文書は、普通は広範囲のキャラクタセットをサポートするために、UTF-8 エンコーディングで宣言されます。 +</p> + <table> + <tr> + </tr> + <th>属性</th> + <th>説明</th> + <tr> + <td>name</td> + <td>メタデータテキストの名前。この名前は、ロケール特有のタイトルテキストを指定するための、'title' と 'short-title' のどちらかを指定してください。</td> + </tr> + <tr> + <td>xml:lang</td> + <td>メタデータテキストのためのロケール言語または言語/国セレクタ。標準の Java ロケール名が期待されます (ISO-639 と ISO-3166)。有効な値として 'en' や 'en_US' を含みます。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<page> + ... + <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata> + <metadata name="title" xml:lang="es">¡Bienvenido a PALポータル!</metadata> + <metadata name="title" xml:lang="hu">Köszönti a PALポータル!</metadata> + ... +</page> +]]></source> + </section> + <section name="PSML セキュリティ制限"> + <p>page、fragment、folder、link、page-security 要素内で現れる <security-constraints>、<security-constraints-def>、<global-security-constraints-ref> 要素については宣言型セキュリティ制限に関するドキュメントに別途記述されています。 +</p> + <p> + <a href="security.html">セキュリティについて</a> + </p> + </section> + <section name="PSML メニュー"> + <p>page、folder 要素内で現れる <menu> 要素は宣言型メニューのガイドに別途記述されています。 +</p> + <p> + <a href="menu.html">メニューについて</a> + </p> + </section> + </body> +</document> Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/menu.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-menus-declarative-psml.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/menu.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/menu.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,373 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>PSML</title> + <subtitle>メニュー</subtitle> + <authors> + <person name="Randy Watler" email="rwatl****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="メニューの宣言"> + <p> +メニューの宣言は、表示されているポータルページに新しいナビゲーション要素を追加したり、デフォルトのものをカスタマイズしたりするために使われます。これらの PSML 宣言は、page 要素と folder 要素の一部分です。他の PSML 要素と同様に、メニュー宣言は、親フォルダで定義された全てに加えて、ページ内で明示的に定義されるものが有効となります。このため、グローバルなサイトのメニューは、サイトのルートフォルダに関連づけられている PSML ファイル内で定義されます。特定のページやフォルダのメニューの定義は、親フォルダで定義されている同じ名前のメニューを上書きします。 +</p> + <p> +ポータルのレイアウトデコレータは、ポータルのコンテンツを描画しているときに、名前でページメニューの宣言にアクセスします。メニューは、動的なナビゲーションペインや、ポータルページのタブや、パンくずリストや、プルダウンメニューを作成するのに使われます。ポータルサイトコンポーネントは、サイトのページ固有の PSML エレメントを持つ動的なメニュー定義の選択肢を実際に形成することを担当しています。例えば、グローバルなメニュー定義は、一般的に、ポータルページが構成されている間、次のような順序でイベントに関係します。 +<ol><li>ポータルレイアウトデコレータは、名前でメニュー定義の要求を行います。</li><li>定義は、現在のページに継承され、ルートフォルダの PSML に設定されます。</li><li>ポータルサイトコンポーネントは、現在のページのコンテキスト内のメニュー定義を解釈し、ページやフォルダやメニューの選択肢のリンクを設置します。</li><li>デコレータは、メニュー定義自身と算出されたメニューの選択肢を元に、ポータルのナビゲーションコンテンツにタイトルとテキストを描画し、メニューを表示します。</li></ol> +</p> + <p> +ポータルサイトコンポーネントによって、内部的にサポートされた共通のメニュー定義が存在し、サイトのページやフォルダの PSML 要素に明示的には定義の必要がありません。 +<ul><li><b>pages</b>: ポータル上のページタブを定義するのに使われる、相対的なページメニュー。</li><li><b>bredcrumbs</b>: ページタブ以下にリンクの履歴を提供するのに使われる、ページへのパス。</li><li><b>navigations</b>: ポータルの横のナビゲーションパネルを定義するのに使われる、相対サブフォルダとルートレベルのリンクメニュー</li><li><b>back</b>: ポータルページタブ上の、以前のページへ 1 つ戻るためのリンクを定義するのに使われる、親フォルダのメニュー。</li></ul> +メニュー定義内で構築されるこれらは、期待どおり、サイトの PSML 内で同じ名前で宣言されるメニューに上書きされます。 +</p> + </section> + <section name="メニューの定義"> + <p> +<menu> 要素は、レイアウトデコレータもしくは他のメニュー内の階層化されたメニューによって使われるメニューを定義します。menu 要素には、たくさんの有効な属性が存在します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>name</td> + <td>テンプレートコードおよび(または)メニュー参照からの検索のためのメニュー名を指定します。この属性は、トップレベルのノードで必須で、階層化されたメニューでは無視されます。</td> + </tr> + <tr> + <td>options</td> + <td>メニューの指定に、ドキュメントとフォルダの深い階層が存在する場合、メニューのためのルートドキュメントのパスを指定します。この属性は、ページ、フォルダ、メニューの選択肢のリンクの指定を行うドキュメントパスも定義します。カンマで区切ったパスおよび (または) 正規表現のパターンを、複数のオプションパスとして指定可能です。相対パスは、現在のページからの相対パスとして解釈されます。「~」や「@」といった特別なパターンを、現在のページを参照するために使うことができます。</td> + </tr> + <tr> + <td>depth</td> + <td>オプションフォルダからのドキュメントの深さを指定します (0 以下の深さの指定は無限大を表す)。メニューの選択肢は、それぞれの可視ページを表示するか、サイトへのリンクを行うために作成されます。フォルダはこの設定によって階層化したメニューに変換されます。</td> + </tr> + <tr> + <td>paths</td> + <td>ルートフォルダから指定された選択肢への順序付きのパスオプションを含むかどうかを指定する真偽値。この設定は「履歴」もしくは「パンくずリスト」メニューを生成するのに使います。</td> + </tr> + <tr> + <td>regexp</td> + <td>選択肢の値としてワイルドカードや正規表現が使われるかどうかを指定する真偽属性。ファイルシステムのコマンドラインの正規表現をサポートします。</td> + </tr> + <tr> + <td>profile</td> + <td>オプションの値を評価する際に使われるプロファイルロケータの名前を指定します。この属性は、オプションと階層化したメニューのためのデフォルトのプロファイルの値も設定します。「*」の指定は、全てのプロファイルロケータの名前を受け入れます。これは、親メニューが選択したプロファイル名を上書きするのに使うことができます。</td> + </tr> + <tr> + <td>order</td> + <td>マッチする選択肢の順序を判断するための、カンマで区切られたマッチするパターンの正規表現のリスト、もしくは正規表現のドキュメントパスの値。この属性は、どの選択肢の要素に対してもデフォルトの選択肢の値として適用されます。しかし、複数の選択肢の子供へのマッチを再度順序づけることはありません。もし指定されない場合、複数の選択肢は、含まれるフォルダドキュメントのものとして返される順序に含まれます。この属性にマッチしない選択肢のパスは、順序づけられたものの後に追加されます。</td> + </tr> + <tr> + <td>skin</td> + <td>メニューのためのレイアウトのヒントを定義する省略可能なデコレータ。この属性は、選択肢や階層化したメニューのデフォルトスキンの値としても使われます。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> + </tr> + </table> + <p> +<menu> 要素は、多数の他のメニュー定義の PSML 要素を含みます。タイトルとメタデータ要素を除いて、これらの要素の相対的な順序は、レイアウトデコレータがそれらを提示する順序を決定します。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>title?</td> + <td>メニュー用のデフォルトのロケール非依存なタイトルを指定する単純な要素。メニューのタイトルは、その長い記述とみなされます。そして、もしメニュー用の短いタイトルが利用可能である場合、デコレータによってはロールオーバー用のテキストとして使う場合があります。もし指定されない場合、メニューの名前が使われます。</td> + </tr> + <tr> + <td>short-title?</td> + <td>メニュー用のデフォルトのロケール非依存な短いタイトル。短いタイトルは、もし利用可能である場合、デコレータによってはメニューのテキストとして使う場合があります。もし指定されない場合、タイトルのテキストが使われます。</td> + </tr> + <tr> + <td>metadata*</td> + <td>追加のロケール特有のタイトルと短いタイトルを指定します(省略可)。</td> + </tr> + <tr> + <td>options*</td> + <td>この順序付きのメニュー要素は、このメニュー定義のためのコンテンツ要素を指定します。</td> + </tr> + <tr> + <td>separator*</td> + <td>このメニュー定義内で、インラインで含まれるテキスト行を指定するために使われる、順序付きのメニュー要素。</td> + </tr> + <tr> + <td>menu*</td> + <td>このメニュー定義に含まれる、階層化されたメニューを定義するのに使われる、他の順序付きメニュー要素。</td> + </tr> + <tr> + <td>include*</td> + <td>このメニュー定義に含める、他のメニューの階層化したメニュー、もしくは選択肢を指定します。含めるメニューの名前はこの順序付きのメニュー要素のテキストです。</td> + </tr> + <tr> + <td>exclude*</td> + <td>このメニュー定義から除外する、他のメニューの選択肢と階層化したメニューを指定します。除外するための要素に含まれるメニューの名前は、この順序付きのメニュー要素のテキストです。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<menu name="simple"> + <options>/some-top-page.psml,/custom/some-other-page.psml</options> +</menu> +]]></source> + <source><![CDATA[ +<menu name="top-2-levels" options="/" depth="2" skin="dhtml-pull-down"/> +]]></source> + <source><![CDATA[ +<menu name="top-role-pages" regexp="true" options="/*" profile="roles"/> +]]></source> + <source><![CDATA[ +<menu name="top-custom"> + <title>Top Menu</title> + <metadata name="title" xml:lang="fr">Haut</metadata> + <options regexp="true" profile="groups">/group-pages/*</options> + <menu options="/" profile="page"> + <separator> + <text>-- Top Pages --</text> + <title>Top Pages</title> + </separator> + <options regexp="true">/*</options> + <separator> + <title>Custom Pages</title> + </separator> + <options depth="2">/custom-folder/</options> + </menu> + <exclude>top-role-pages</exclude> + <separator>More Top Pages</separator> + <include nest="true">top-role-pages</include> +</menu> +]]></source> + <p>デフォルトの共通メニュー宣言のための定義は、内部的にポータルサイトコンポーネントによってサポートされます。 +</p> + <source><![CDATA[ +<menu name="pages" regexp="true" options="*.psml"/> +]]></source> + <source><![CDATA[ +<menu name="breadcrumbs" options="~" paths="true"/> +]]></source> + <source><![CDATA[ +<menu name="navigations"> + <separator>Folders</separator> + <options regexp="true">./*/</options> + <include>page-navigations</include> + <separator>Additional Links</separator> + <options regexp="true">/*.link</options> +</menu> +]]></source> + <source><![CDATA[ +<menu name="back" options="../"/> +]]></source> + <p>これらの定義のセパレータのテキストは、内部的に変換されることに注意してください。</p> + </section> + <section name="メニューの選択肢の定義"> + <p> +<options> 要素は、<a href="#Menu_Definition">メニュー</a>内に単一または複数の選択肢を定義します。この単純な要素の文字列は、ページ、もしくはフォルダ、もしくはリンクのメニューの選択肢を作るドキュメントのパスを指定します。複数の選択肢のパスを、パスおよび (もしくは) 正規表現パターンをカンマで区切ったリストとして指定することも可能です。相対パスは、現在のページからの相対パスとして解釈されます。「~」や「@」といった特別なパターンを、現在のページを参照するために使うことができます。この要素は、メニュー要素とたくさんの属性を共有します。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>depth</td> + <td>選択肢のフォルダからのドキュメントの深さを指定します (0 以下の深さは無限大を表します)。メニューの選択肢は、サイトへのそれぞれの可視ページまたはリンクを表示するように作成されます。フォルダは、この設定によって階層化したメニューに変換されます。</td> + </tr> + <tr> + <td>paths</td> + <td>ルートフォルダから指定された選択肢への順序付きのパスの選択肢を含むかどうかを指定する真偽値。この設定は「履歴」もしくは「パンくずリスト」メニューを生成するのに使います。</td> + </tr> + <tr> + <td>regexp</td> + <td>選択肢の値としてワイルドカードや正規表現が使われるかどうかを指定する真偽属性。ファイルシステムのコマンドラインの正規表現をサポートします。</td> + </tr> + <tr> + <td>profile</td> + <td>選択肢の値を評価する際に使われるプロファイルロケータの名前を指定します。この属性は、選択肢と階層化したメニューのためのデフォルトのプロファイルの値も設定します。「*」の指定は、全てのプロファイルロケータの名前を受け入れます。これは、親メニューが選択したプロファイル名を上書きするのに使うことができます。</td> + </tr> + <tr> + <td>order</td> + <td>マッチする選択肢の順序を判断するための、カンマで区切られたマッチするパターンの正規表現のリスト、もしくは正規表現のドキュメントパスの値。この属性は、どの選択肢の要素に対してもデフォルトの選択肢の値として適用されます。しかし、複数の選択肢の子供へのマッチを再度順序づけることはありません。もし指定されない場合、複数の選択肢は、含まれるフォルダドキュメントの順番で返される順序に含まれます。この属性にマッチしない選択肢のパスは、順序づけられたものの後に追加されます。</td> + </tr> + <tr> + <td>skin</td> + <td>メニューの選択肢のレイアウトのヒントを定義するデコレータ(省略可)。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<menu> + ... + <options regexp="true" order="*.psml,*.link"> + /some-top-page.psml,/custom/some-other-page.psml,/*.link + </options> + ... +</menu> +]]></source> + </section> + <section name="メニューのセパレータの定義"> + <p> +<separator> 要素は、メニューに含めるセパレータを定義します。セパレータは、選択肢もしくは階層化したメニューが、メニューの定義内のこの要素以下に現れた場合のみ含まれます。セパレータのテキストは、この要素内のテキスト、もしくはテキストメニュー定義の要素内で指定することが可能です。セパレータ要素に記述可能な属性は 1 つしかありません。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>skin</td> + <td>メニューセパレータのレイアウトのヒントを定義する省略可能なデコレータ。このヒントは、現時点では PALポータルのデコレータでは使われていません。</td> + </tr> + </table> + <p> +<separator> 要素は、たくさんの他のメニュー定義の PSML 要素を含みます。 +</p> + <table> + <tr> + <th>要素</th> + <th>説明</th> + </tr> + <tr> + <td>title?</td> + <td>メニュー用のデフォルトのロケール非依存なタイトルを指定する単純な要素。セパレータのタイトルは、その長い記述とみなされます。そして、もしセパレータのテキストが利用可能である場合、デコレータによってはロールオーバー用のテキストとして使う場合があります。</td> + </tr> + <tr> + <td>text?</td> + <td>メニュー用のデフォルトのロケール非依存なテキストを指定する単純な要素。セパレータのテキストは必須で、この属性によって指定されようと、セパレータ要素内のテキストとして指定されようと、レイアウトデコレータがメニュー内に挿入するためのテキストとなります。</td> + </tr> + <tr> + <td>metadata*</td> + <td>ロケール特有の追加のタイトルとセパレータテキスト(省略可)。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<menu> + ... + <separator>-------------</separator> + ... + <separator> + <text>-- Top 10 Pages --</text> + <metadata name="text" xml:lang="fr">Haut Pages</metadata> + <title>Top 10 pages as voted by the PALポータルusers!</title> + </separator> + ... +</menu> +]]></source> + </section> + <section name="メニューをインクルードするための定義"> + <p> +<include> 要素は、選択肢または、他のメニューの階層化した メニューを含みます。含めるメニューの名前は、このエレメントのテキスト値として指定します。この要素に含めることのできる有効な属性は 1 つしかありません。 +</p> + <table> + <tr> + <th>属性</th> + <th>説明</th> + </tr> + <tr> + <td>nest</td> + <td>指定したメニューが、階層化するためのものかどうかを制御する真偽値。もしこの属性に 'true' が指定された場合、含めるメニューはサブメニューとして階層化されます。そうでないのなら、全ての選択肢と指定したメニューの階層化したメニューは、このメニュー内にインラインで挿入されます。</td> + </tr> + </table> + <p>例:</p> + <source><![CDATA[ +<menu> + ... + <include nest="true">navigations</include> + ... +</menu> +]]></source> + </section> + <section name="メニューの除外を行うための定義"> + <p> +<exclude> 要素は、選択肢もしくは、他のメニューの階層化した メニューを除外します。このオプションは主に、このメニューから、ポータルページ内の、他のメニューに既に表示されているメニューの選択肢を消去するために使われます。一致する選択肢またはメニューがメニュー定義内のこの要素より上に表示されている場合は、除外されます。除外するメニューの名前は、この単純な要素のテキスト値として指定します。 +</p> + <p>例:</p> + <source><![CDATA[ +<menu> + ... + <exclude>pages</exclude> + ... +</menu> +]]></source> + </section> + <section name="ページレイアウトデコレータ"> + <p> +ページレイアウトデコレータは、ページが PALポータルパイプラインで描画されるとき、ポータルサイトコンポーネントからメニューを要求します。デコレータは、メニューが PSML で定義されることを期待します。カスタムメニューがポータルに表示される前に、デコレータは、カスタムメニューの描画を変更する必要があります。以下に、Velocity レイアウトデコレータの header.vm ファイルから抜き出した例を示します。 +</p> + <source><![CDATA[ +... +#set($pagesStandardMenu = $site.getMenu("pages")) +#if(!$pagesStandardMenu.empty) + <div class="tabs"> +#includeTabsNavigation($pagesStandardMenu $LEFT_TO_RIGHT) + </div> +#end +... +]]></source> + <p> +このコードは、ポータルページ内の標準的なページのタブメニューを描画します。ポータルサイトコンポーネントは Velocity のコンテキスト変数 <i>$site</i> として表れます。空のメニュー定義のための判断は、空のメニューがページコンテンツ内に描画されないことを保証するために設計されています。最後に、デコレータマクロが、メニューコンテンツを展開するために実行されます。一般に、再帰的なマクロの起動で階層化したメニューを描画することをサポートするために、このアプローチを取ります。この場合、デコレータはページオプションだけを期待します。以下に、ページのタブメニューを描画するのに使われるマクロ実装を示します。 +</p> + <source><![CDATA[ +#macro (includeTabsNavigation $_menu $_orientation) + <table border="0" cellpadding="0" cellspacing="0"> + <tr> + #foreach($element in $_menu.elements.iterator()) + #if($element.elementType == "option") + #set($tabTitle = $element.getTitle($preferedLocale)) + #set($tabName = $element.getShortTitle($preferedLocale)) + #if($_orientation == $LEFT_TO_RIGHT) + #if($element.isSelected($site)) + <td class="LTabLeft" nowrap="true"> </td> + <td class="LTab" align="center" valign="middle" nowrap="true" title="$!tabTitle">${tabName}</td> + <td class="LTabRight" nowrap="true"> </td> + #else + #set($tabUrl = $jetspeed.getAbsoluteUrl($element.url)) + <td class="LTabLeftLow" nowrap="true"> </td> + <td class="LTabLow" align="center" valign="middle" nowrap="true" title="$!tabTitle"><a href="$tabUrl">${tabName}</a></td> + <td class="LTabRightLow" nowrap="true"> </td> + #end + #end + #end + #end + </tr> + </table> +#end +]]></source> + <p> +このマクロは、ポータルサイトコンポーネントによって提供される、処理されたページメニューの選択肢全てに渡って反復されます。これは、表示されるタブそれぞれを作るための HTML 要素のテーブルデータを描画します。メニュー全体は、単一の行の HTML テーブルとして描画されます。 +</p> + <p> +以下に、ポータルサイトコンポーネントオブジェクトがレイアウトデコーレータに表示する、宣言型のメニューのインタフェースを作るためのプライマリのインタフェースのリストを以下に挙げます。 +<ul><li>org.apache.jetspeed.portalsite.Menu</li><li>org.apache.jetspeed.portalsite.MenuElement</li><li>org.apache.jetspeed.portalsite.MenuOption</li><li>org.apache.jetspeed.portalsite.MenuSeparator</li><li>org.apache.jetspeed.portalsite.PortalSiteRequestContext></li></ul> +</p> + </section> + <section name="ポータルサイトコンポーネント"> + <p> +PALポータルのポータルサイトコンポーネントには、 2 つの密接に関係した役割があります。 +<ol><li>ユーザからのポータルのリクエスト URL を、サイト内の PSML ページもしくはフォルダ要素にマップします。</li><li>サイトでユーザが利用可能なものを反映した、サイトのナビゲーションメニューと、メニューの選択肢を構築します。</li></ol> +一見、これらの機能は、PSML サイト定義を検索し、走査するだけの、比較的シンプルなものであるように見えます。しかし、一度プロファイラーの集約とセキュリティ制約のフィルタリングの複雑さが採り入れられると、マッピングはもはや単純ではなくなります。 +</p> + <p> +メニューの選択肢は、PSML サイトのポータルサイトコンポーネントがマッチさせるビューと一致していることに注意することが重要です。メニュー要素の指定するドキュメントのパスは、PSML フォルダやページを指し示すために使われる物理パスではありません。代わりに、ポータルリクエストを反映するパスは、メニューの選択肢として含める PSML 要素を選択するのに使われます。このように、プロファイリングとセキュリティは、あたかも実行中のリクエスト URL を逆にマップするかのように、メニューの選択肢の集団に自動的に含まれます。 +</p> + </section> + </body> +</document> Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/security.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-security-declarative-psml.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/security.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/psml/security.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,251 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004-2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>PSML</title> + <subtitle>セキュリティ</subtitle> + <authors> + <person name="David Sean Taylor" email="taylo****@apach*****"/> + <person name="Randy Watler" email="rwatl****@apach*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="セキュリティについて"> + <p> +セキュリティ制約は、ページとフォルダに適用されます。セキュリティ制約は、ページとフォルダに対するアクセスを許可したり拒否したりします。制約は、以下の 4 つの場所の 1 つまたは全てで定義されます。 +<ul><li>1. <b>グローバル:</b> PSML ツリーのルートに存在する <b><i>page.security</i></b> ファイル内の宣言として。</li><li>2. <b>フォルダ:</b> 各ディレクトリにオプショナルに存在する <b><i>folder.metadata</i></b> ファイル内で。</li><li>3. <b>ページ:</b> 特定のページへのアクセスを制限するために PSML ファイル内で。</li><li>4. <b>フラグメント:</b> ページ内の特定のフラグメントに対するアクセスを制限するために PSML ファイルの中で。</li></ul> +</p> + <subsection name="許可"> + <p> +許可は、ページまたはフォルダへのアクセスに対するパーミッション、承認、権限の授与、主体のリストのどれかに関係します。セキュリティ制約を与えるということは、 1 つ以上のパーミッションと組み合せた、 1 つ以上のセキュリティ主体のリストの関連付けを行うということです。制約を与えると、関連づけられたパーミッションのリストの通りになるようページまたはフォルダへのアクセスが許可されます。 +</p> + </subsection> + <subsection name="否認"> + <p> +否認のセキュリティ制約は、 1 つ以上のセキュリティ主体と共に宣言されます。制約の否認は、与えられた主体のリストの通りになるよう、ページやフォルダに対するアクセスを禁止します。制約の否認は、制約の承認の前にリストアップされる必要があることに注意してください。 +</p> + </subsection> + <subsection name="宣言型と参照型の制約"> + <p> +ページとフォルダのリソース制約が適用されるとき、制約は <b><i>宣言型</i></b> または <b><i>参照型</i></b> の制約のどちらかである可能性があります。宣言型の制約は、特定のページまたはフォルダのリソースが、適切に使われるために宣言されます。参照型の制約は、中央集権的なセキュリティ制約リソースである <b><i>page.security</i></b> ファイル内で宣言された制約を参照します。サイト毎かサブサイト毎に、任意のページやフォルダ内で参照される制約を宣言するために、<b><i>page.security</i></b> が 1 つあります。 +</p> + </subsection> + </section> + <section name="セキュリティ制約"> + <p> +セキュリティ制約は、PSML ファイル内、もしくはフォルダのメタデータファイル内、もしくはグローバルなセキュリティの宣言中にある XML 要素です。セキュリティ制限には name という属性が 1 つ存在します。セキュリティ制約は、以下の要素を持ちます。 +</p> + <ul> + <li>roles - カンマで区切られた 1 つ以上のロール主体のリスト、もしくは全てのロールを表す *</li> + <li>groups - カンマで区切られた 1 つ以上のグループ主体のリスト、もしくは全てのグループを表す *</li> + <li>users - カンマで区切られた 1 つ以上のユーザー主体、もしくは全てのユーザーを表す *</li> + <li>owner - 単一のユーザー主体</li> + <li>permissions - カンマで区切られた 1 つ以上のパーミッション (view, edit, help) のリスト</li> + </ul> + <p> +最初の 4 つの要素 (roles, groups, users, owner) は全て、承認されるもしくは拒否されるパーミッションを持つ主体を定義します。 +</p> + <subsection name="パーミッション"> + <p> +パーミッションは、セキュリティ制限によって許可が与えられるポータルのモードです。パーミッションは許可を行うだけで、否認はしません。 +<b><i>view</i></b> パーミッションは、オペレーティングシステムにおける <b><i>read</i></b> パーミッションと同様のものです。 +<b><i>edit</i></b> パーミッションは、オペレーティングシステムにおける <b><i>write</i></b> パーミッションと同様のものです。 +<b><i>help</i></b> パーミッションは、他のポータルで <b><i>info</i></b> パーミッションとなっているものと同様のものです。 +</p> + </subsection> + <subsection name="ロール"> + <p> +制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のロール主体に与えることができます。ロールは、承認されたロール主体 (つまりそのユーザーがメンバーであるということ) のユーザーリストから得られます。もし承認されたユーザーが、リストされたロールのどれかのメンバーであるのなら、リソースに対するパーミッションが与えられます。 +</p> + <source><![CDATA[ + <security-constraint> + <roles>adminstrator, manager</roles> + <permissions>view, edit</permissions> + </security-constraint> +]]></source> + <p> +制約は、ロール主体のリソース全体に対するアクセスを拒否することも可能です。もし承認されたユーザーが、リストされたロールのどれかのメンバーであるのなら、リソースに対する全てのアクセスが拒否されます。 +</p> + <source><![CDATA[ + <security-constraint> + <roles>adminstrator, manager</roles> + </security-constraint> +]]></source> + </subsection> + <subsection name="グループ"> + <p> +制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のグループ主体に与えることができます。 +グループは、承認されたグループ主体 (つまりユーザーがメンバーであるグループ) のユーザーのリストから得られます。 +もし承認されたユーザーが、リストされたグループのどれかのメンバーであるのなら、リソースに対するパーミッションが与えられます。 +<source><![CDATA[ + <security-constraint> + <groups>accounting, development</groups> + <permissions>view</permissions> + </security-constraint> +]]></source> +制約は、グループ主体のリソース全体に対するアクセスを拒否することもできます。もし承認されたユーザーが、リストされたグループのいずれかのメンバーであるのなら、リソースに対する全てのアクセスが拒否されます。 +<source><![CDATA[ + <security-constraint> + <groups>accounting, development</groups> + </security-constraint> +]]></source> + </p> + </subsection> + <subsection name="ユーザー"> + <p> +制約は、与えられたリソースへのパーミッションのセットを、 1 つ以上のユーザー主体に与えることができます。現在のユーザーは、リソースに対するパーミッションを与えるためにカンマで区切られたリスト中にリストされる、主体の 1 つでなければなりません。 +<source><![CDATA[ + <security-constraint> + <users>joey, deedee, johnny</users> + <permissions>view, edit, help</permissions> + </security-constraint> +]]></source> +制約は、ユーザー主体の全てのリソースに対するアクセスを拒否することも可能です。もし承認されたユーザーがリスト内にあれば、全てのアクセスは拒否されます。 +<source><![CDATA[ + <security-constraint> + <users>fred</users> + </security-constraint> +]]></source> + </p> + </subsection> + <subsection name="組み合せ"> + <p> + 1 つ以上の種類の主体の集合に対してパーミッションを与えたり、拒否したりできることに注意してください。例えば、ここではロール (manager, developer) とグループ (QA と Research) と特定のユーザー (dilbert) に対して、view と edit のパーミッションを与えています。もし承認されたユーザーが、ここにリストされたロール、ユーザー、グループのどれかのメンバーであるのなら、このリソースに対するパーミッションが与えられます。 +</p> + <source><![CDATA[ + <security-constraint> + <roles>hacker, coder, guru</roles> + <groups>unix, linux, freebsd</groups> + <users>betty, fred, barney, wilma</users> + <permissions>view, edit</permissions> + </security-constraint> +]]></source> + <p> +制約は、主体の組み合せが、全てのリソースに対するアクセスを拒否することも可能です。もし承認されたユーザーが、リストされたグループやロールやユーザーのメンバーであれば、リソースに対する全てのアクセスは拒否されます。 +</p> + <source><![CDATA[ + <security-constraint> + <roles>hacker, coder, guru</roles> + <groups>unix, linux, freebsd</groups> + <users>betty, fred, barney, wilma</users> + </security-constraint> +]]></source> + </subsection> + <subsection name="すべて *"> + <p> +全てを意味する * (アスタリスク) は、ロール、グループ、ユーザー、パーミッションの全てに適用可能です。 +<source><![CDATA[ + <security-constraint> + <users>*</users> + <permissions>*</permissions> + </security-constraint> +]]></source> +</p> + </subsection> +<!-- + <subsection name=" オーナー"> + <p> + TODO + </p> + </subsection> +--> + </section> + <section name=" 宣言型の制約とグローバルの制約"> + <p> +宣言型の制約は、サイトのルートにある <b><i>page.security</i></b> ファイル内で宣言されます。宣言型の制約は、<b><i>security-constraints-ref</i></b> タグを使って、ページやフォルダ内で参照されます。グローバルな制約も宣言型の制約です。これらは、ルート PSML リポジトリ内の <b><i>page.security</i></b> ファイル内で定義され、見付かります。グローバルな制約との違いは、page.security ファイルのスコープ内 (すなわちサイト) の全てのフォルダとページに、暗黙のうちに適用されることです。PALポータルをインストールすると、 1 つしか <b><i>page.security</i></b> ファイルは存在できないことに注意してください。 +</p> + <source><![CDATA[ + <security-constraints-def name="admin"> + <security-constraint> + <roles>admin</roles> + <permissions>view, edit</permissions> + </security-constraint> + </security-constraints-def> + <global-security-constraints-ref>admin</global-security-constraints-ref> +]]></source> + <subsection name="デフォルトの制約"> + <p> +セキュリティ制約の宣言には、PALポータルのデフォルトの配備で作成されるものがあります。 +<table><tr><th>制約名</th><th>与えられる対象</th><th>パーミッション</th><th>グローバルかどうか</th></tr><tr><td>admin</td><td>roles: admin</td><td>view, edit</td><td>yes</td></tr><tr><td>manager</td><td>roles: manager</td><td>view</td><td>no</td></tr><tr><td>users</td><td>roles: user, manager</td><td>view</td><td>no</td></tr><tr><td>public-view</td><td>users: *</td><td>view</td><td>no</td></tr><tr><td>public-edit</td><td>users: *</td><td>view, edit</td><td>no</td></tr></table> +</p> + </subsection> + </section> + <section name="フォルダの制約"> + <p> +フォルダのセキュリティ制約は、サイト内の各フォルダにオプショナルで存在する <b><i>folder.metadata</i></b> ファイル内の <b><i>security-constraints リスト</i></b> 内に記述されます。<b><i>folder.metadata</i></b> ファイルがない場合、もしくはそのファイル内にセキュリティ制約の記述がない場合は、フォルダは、サイトかサブサイトのルートフォルダまでディレクトリをたどって、親フォルダの制約を継承することに注意してください。以下に 2 つの例を示します。 1 つ目は参照型の制約であり、 2 つ目は宣言型の制約です。 +<source><![CDATA[ + <security-constraints> + <security-constraints-ref>public-view</security-constraints-ref> + <security-constraint> + <groups>engineering</groups> + <permissions>view</permissions> + </security-constraint> + </security-constraints> +]]></source> +</p> + <p> +全てのセキュリティ制約は、<b><i>security-constraints</i></b> 内に記述しなければなりません。 +</p> + </section> + <section name="ページの制約"> + <p> +ページのセキュリティ制約は、<b><i>PSML</i></b> ファイル内の <b><i>security-constraints list</i></b> に記述されます。これはオプショナルです。このファイルにセキュリティ制約の記述がない場合は、フォルダは、自身が存在するフォルダの制約を継承することに注意してください。ページのセキュリティ制約は、宣言型のセキュリティ制約と参照型のセキュリティ制約から作成されます。以下に、 2 つの例を示します。 1 つ目は参照型の制約、 2 つ目は宣言型の制約です。 +</p> + <source><![CDATA[ + <security-constraints> + <security-constraints-ref>global-view</security-constraints-ref> + <security-constraint> + <groups>accounting</groups> + <permissions>view, edit</permissions> + </security-constraint> + </security-constraints> +]]></source> + <p> +全てのセキュリティ制約は、<b><i>security-constraints</i></b> 内に記述しなければなりません。 +</p> + </section> + <section name="フラグメントの制約"> + <p> +ページのセキュリティ制約と同様に、フラグメントのセキュリティ制約は、<b><i>PSML</i></b> ファイル内の <b><i>security-constraints リスト</i></b> に記述されます。この記述は省略可能です。期待通り、セキュリティの制約のリストがない場合は、フラグメントは、自身が属するページの制約を継承します。view パーミッションだけがフラグメントの制約に対してチェックされることに注意してください。他のパーミッションは含まれるページに対してのみテストされます。 +</p> + </section> + <section name="Spring の設定"> + <p> +宣言型のセキュリティ制約は、デフォルトでページマネージャコンポーネントの Spring の設定で有効になります。以下に、<b><i>page-manager.xml</i></b> という Spring の部品設定ファイルのデフォルトのページマネージャ bean の設定を示します。 +</p> + <source><![CDATA[ + <bean id="org.apache.jetspeed.page.PageManager" + name="pageManager" + class="org.apache.jetspeed.page.psml.CastorXmlPageManager"> + <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg> + <constructor-arg index="1"><ref bean="DocumentHandlerFactory"/></constructor-arg> + <constructor-arg index="2"><ref bean="FolderHandler"/></constructor-arg> + <constructor-arg index="3"><ref bean="PageFileCache"/></constructor-arg> + <!-- permissions security enabled flag, default=false --> + <constructor-arg index="4"><value>false</value></constructor-arg> + <!-- 制約セキュリティモデルの有効フラグ、デフォルト true --> + <constructor-arg index="5"><value>true</value></constructor-arg> + </bean> +]]></source> + <p> +この例の 6 番目 (index="5") の真偽値のコンストラクタ引数が、"制約セキュリティ" モデルを有効にするかどうかの指定を行うものです。もし、宣言型のセキュリティ制約が有効でないのなら、全てのインライン、参照型、グローバルのセキュリティ制約は無視されます。 +</p> + </section> + </body> +</document> Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/config.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/config.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/config.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>セキュリティ</title> + <subtitle>設定ファイル</subtitle> + <authors> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="設定ファイル"> + <p> +PALポータル標準のセキュリティサービスの設定は、独自のデータベースで管理する実装を利用しています。 +セキュリティサービスは、その独自のデータベース管理を LDAP など任意のサービスに切り替え可能な仕組みとして実装してあります。 +ですので、必要に応じて、設定ファイルを変更することでセキュリティサービスを変更することが可能です。 + </p> + <p> +全ての設定ファイルは <code>webapps/palportal/WEB-INF/assembly</code> に配置されています。 + </p> + <subsection name="security-atn.xml"> + <p> +この設定ファイルはログインモジュールの設定を提供しています。 +ログインモジュールを変更したい場合に編集します。 + </p> + </subsection> + <subsection name="security-atz.xml"> + <p> +この設定ファイルは、承認ポリシーの設定を提供します。 + </p> + </subsection> + <subsection name="security-managers.xml"> + <p> +この設定ファイルは、セキュリティに関するマネージャ機能を提供します。 + </p> + </subsection> + <subsection name="security-providers.xml"> + <p> +この設定ファイルは、様々なプロバイダーを提供しています。 + </p> + <p> +AuthenticationProviderProxy は AuthenticationProvider のリストと、デフォルトの認証方法名を設定します。 +これにより、複数の認証方法が適用することができます。 + </p> + <source><![CDATA[ +<bean id="org.apache.jetspeed.security.AuthenticationProviderProxy" + class="org.apache.jetspeed.security.impl.AuthenticationProviderProxyImpl"> + <constructor-arg > + <list> + <ref bean="org.apache.jetspeed.security.AuthenticationProvider"/> + </list> + </constructor-arg> + <constructor-arg ><value>DefaultAuthenticator</value></constructor-arg> +</bean> +]]></source> + <p> +AuthenticationProvider は、ポータル上で利用する認証プロバイダーを設定しています。 +以下の例では、ユーザー情報の管理にデータベースを利用する認証方法を設定しています。 + </p> + <source><![CDATA[ +<bean id="org.apache.jetspeed.security.AuthenticationProvider" + class="org.apache.jetspeed.security.impl.AuthenticationProviderImpl"> + <constructor-arg index="0"><value>DefaultAuthenticator</value></constructor-arg> + <constructor-arg index="1"><value>The default authenticator</value></constructor-arg> + <constructor-arg index="2"><value>login.conf</value></constructor-arg> + <constructor-arg index="3"> + <ref bean="org.apache.jetspeed.security.spi.CredentialHandler"/> + </constructor-arg> + <constructor-arg index="4"> + <ref bean="org.apache.jetspeed.security.spi.UserSecurityHandler"/> + </constructor-arg> +</bean> +]]></source> + <p> +AuthorizationProvider はパーミッションを適用するために使用される SecurityPolicies を設定します。 + </p> + <source><![CDATA[ +<bean id="org.apache.jetspeed.security.AuthorizationProvider" + class="org.apache.jetspeed.security.impl.AuthorizationProviderImpl"> + <constructor-arg index="0"> + <ref bean="org.apache.jetspeed.security.impl.RdbmsPolicy"/> + </constructor-arg> + <!-- Does not use the default policy as a default behavior --> + <constructor-arg index="1"><value>false</value></constructor-arg> +</bean> +]]></source> + </subsection> + <subsection name="security-spi.xml"> + <p> +この設定ファイルは、共通の認証・承認 SPI の設定を提供します。 + </p> + </subsection> + <subsection name="security-spi-atn.xml"> + <p> +この設定ファイルは、認証 SPI の設定を提供します。 + </p> + <table> +<tr> + <th>コンポーネント名</th> + <th>説明</th> +</tr> +<tr> + <td>org.apache.jetspeed.security.spi.CredentialHandler</td> + <td>CredentialHandler は資格に関する操作を内包します。その処理は、PasswordCredentialProvider や InternalPasswordCredentialInterceptor により定義されたパスワード検証処理の実装を持ちます。</td> +</tr> +<tr> + <td>org.apache.jetspeed.security.spi.UserSecurityHandler</td> + <td>UserSecurityHandler はユーザー主体まわりの操作を内包します。</td> +</tr> + </table> + </subsection> + <subsection name="security-spi-atz.xml"> + <p> +この設定ファイルは、承認 SPI の設定を提供します。 + </p> +<table> +<tr> + <th>コンポーネント名</th> + <th>説明</th> +</tr> +<tr> + <td>org.apache.jetspeed.security.spi.RoleSecurityHandler</td> + <td>RoleSecurityHandler はロール主体まわりの処理を内包しています。</td> +</tr> +<tr> + <td>org.apache.jetspeed.security.spi.GroupSecurityHandler</td> + <td>GroupSecurityHandler はグループ主体まわりの処理を内包しています。</td> +</tr> +<tr> + <td>org.apache.jetspeed.security.spi.SecurityMappingHandler</td> + <td>SecurityMappingHandler は主体間のマッピング操作を内包しています。</td> +</tr> +</table> + </subsection> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/credential.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/credential.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/credential.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<document> + <properties> + <title>セキュリティ</title> + <subtitle>資格管理</subtitle> + <authors> + <person name="David Le Strat" email="dlest****@apach*****"/> + <person name="Ate Douma" email="ate****@douma*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="資格管理について"> + <p> +この節では、パスワードまわりの処理について説明します。 + </p> + </section> + <section name="DefaultCredentialHandler の機能"> + <p> +DefaultCredentialHandler により、パスワード資格の様々な管理を簡単に実現できます。 +PasswordCredentialProvider と InternalPasswordCredentialInterceptor コンポーネントを利用して、パスワード検証を柔軟に設定することができます。 +</p> + <p> +PALポータルでは、パスワード資格を扱うために PasswordCredential の実装を提供して、認証に利用しています。 +</p> + <subsection name="パスワードエンコード"> + <p> +PasswordCredentialProvider から CredentialPasswordEncoder が利用可能であれば、パスワードは保存される前にエンコードされます。 +提供している MessageDigestCredentialPasswordEncoder はパスワードの暗号化にメッセージダイジェストのハッシュアルゴリズムを適用します。 +たとえば、SHA-1 や Base64 などが利用可能です。 +</p> + </subsection> + <subsection name="パスワード検証"> + <p> +PasswordCredentialProvider から CredentialPasswordValidator が利用可能であれば、パスワードは保存される前に検証されます。 +たとえば、DefaultCredentialPasswordValidator はパスワードを必須にします。 +また、SimpleCredentialPasswordValidator は最小の文字列数や最小の数値文字数などを検証することもできます。 +</p> + <p> +InternalCredential では、ライフサイクルイベントで割り込んで検証します。 +DefaultCredentialHandler が InternalPasswordCredentialInterceptor で提供されていれば、以下の状況で呼ばれます。 + <ul><li>保存場所から資格を読み取った後</li><li>ユーザー認証した後</li><li>新しい資格を保存する前</li><li>新しいパスワードを資格に保存する前</li></ul> +PALポータルは、基本的なインターセプターを提供しています。 + <ul><li>ValidatePasswordOnLoadInterceptor: +このインターセプターは保存時にパスワードを検証し、正しくなければ変更を要求します。 +それは PasswordCredentialProvider の CredentialPasswordValidator により構成されます。 + </li><li>EncodePasswordOnFirstLoadInterceptor: +このインターセプターはパスワード保存先から暗号化されていないパスワードを読み取ったときに実行されます。 +PasswordCredentialProvider の CredentialPasswordEncoder を使用して、データベースから平文パスワードを初回読み込み時に自動的にエンコードします。 + </li><li>PasswordExpirationInterceptor: +このインターセプターはパスワードの有効期間を確認します。 +それは、InternalCredential の expiration_date と is_expired の値で管理され、期限切れの場合は期限切れフラグを立てます。 + </li><li>MaxPasswordAuthenticationFailuresInterceptor: +このインターセプターは不正パスワード入力の最大回数を確認して、パスワードハッキングを防ぎます。 +最大失敗回数に到達すると、その資格は無効になります。 +認証に成功すると、失敗回数はリセットされます。 + </li><li>PasswordHistoryInterceptor: +このインターセプターは過去にパスワードが利用したものでないかを確認します。 +新いパスワードを設定すると、現在のパスワードを FIFO スタックに保存します。 +以前に利用したものであれば、PasswordAlreadyUsedException が発生します。 + </li></ul> + </p> + <p> +DefaultCredentialHandler は 1 つだけのインターセプターをサポートしています。 +しかし、InternalPasswordCredentialInterceptorsProxy を用いることで、複数のインターセプターを利用することができます。 +</p> + </subsection> + </section> + <section name="資格管理の実装"> + <p> +DefaultCredentialHandler の実装で利用されるコンポーネントを以下の図に示します。 + </p> + <img src="../images/credential-handler-c.gif" border="0"/> + <p> +標準の資格実装では、security_repository.xml で指定される OJB によるマッピングで実現されています。 +InternalCredential はSECURITY_CREDENTIAL テーブルにマップされています。 +以下が対象部分のデータベーススキーマになります。 + </p> + <img src="../images/principals-credentials-schema.gif" border="0"/> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/credential.xml ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/guide.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/guide.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/guide.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>セキュリティ</title> + <subtitle>概要</subtitle> + <authors> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="概要"> + <p> +PALポータルは、LoginModule と Policy の実装により、J2EE の認証・承認サービスを利用しています。 +認証はユーザー ID により確立して、すべてのユーザー主体を持つ Subject を生成します。 +ポータルコンテキスト内で、生成された Subject は org.apache.jetspeed.security.SecurityValve の実装でセッションへ格納されます。 +Subject の主体は、適切なリソースへのユーザーアクセスを承認するためなどに使われます。 +それにより、AccessController でユーザーのパーミッションを確認することで、JAAS 承認を利用しています。 +<!-- より詳細な情報は、「JAAS 承認」を参照してください。 --> + </p> + <p> +以下にセキュリティアーキテクチャの概要図を示します。 + </p> + <img src="../images/security-arch-overview.gif"/> + <p> +各コンポーネントはコンポーネント設定ファイルで指定されています。 +<!-- より詳細な情報は、「設定ファイル」を参照してください。 --> + </p> + <p> +PALポータルのセキュリティアーキテクチャは JAAS に準拠しています。 +必要に応じて、LoginModule や Policy の実装は変更可能です。 +PALポータルの実装では、機能拡張しやすいように SPI モデルを採用しています。 + </p> + </section> + <section name="Authentication Architecture Overview"> + <p> + For authentication, Jetspeed 2 leverages Java + <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/spi/LoginModule.html">LoginModule</a> + architecture. It provides a <a href="login-module.html">DefaultLoginModule</a> implementation and a + flexible architecture to be able to authenticate user against multiple user repositories and provide user + management capabilities across those repository. A <code>UserManager</code> provides a set of coarsed + services for authenticating and managing users. The class diagram below illustrates how the + <code>UserManager</code> provides authentication to the <code>DefaultLoginModule</code> and leverages + the <a href="atn-spi.html">Authentication SPI</a> to interact with various implementation and user stores. + </p> + <p> + <img src="../images/atn-arch-c.gif" border="0"/> + </p> + <p> + The various components described above fulfill the following functions: + <table><tr><th>Component</th><th>Description</th></tr><tr><td><code>DefaultLoginModule</code></td><td>Jetspeed 2 default <a href="login-module.html">LoginModule</a> implementation which + leverages the <code>authenticate()</code> method of the <code>UserManager</code> to provide + authentication against the various <code>AuthenticationProvider</code> implementation currently + configured.</td></tr><tr><td><code>UserManager</code></td><td>Coarsed service providing authentication and user management. The <code>UserManager</code>code> + leverages the various <code>AuthenticationProvider</code> implementations exposed to it through + the <code>AuthenticationProviderProxy</code> through the <code>SecurityProvider</code>. + </td></tr><tr><td><code>SecurityProvider</code></td><td>Provides access to the security providers exposing SPI implementation to the coarsed security + services. + </td></tr><tr><td><code>AuthenticationProviderProxy</code></td><td>A proxy to the various <code>AuthenticationProvider</code> implementations. The <code>AuthenticationProviderProxy</code> + is responsible of invoking the correct <code>AuthenticationProvider</code> to authenticate or manage + a specific user against a specific data store.</td></tr></table> + </p> + </section> + <section name="Authorization Overview"> + <p> + For auhorization, Jetspeed 2 implements its own + <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html">java.security.Policy</a> using + a relation database store to manage associations between principals and permissions. + </p> + <p align="center"> + <img src="../images/rdbms-policy-overview-c.gif" border="0"/> + </p> + <p> + The <code>PermissionManager</code> provides access to the permissions associated to given principals. + </p> + <p> + <ul> + <li>The <a href="atz-jaas.html">JAAS Authorization</a> provides an overview of the authorization aspect of JAAS.</li> + <li>The <a href="permission.html">PermissionManager Overview</a> documents the <code>PermissionManager</code> implementation.</li> + </ul> + </p> + </section> + <section name="セキュリティサービス"> + <p> +PALポータルでは以下のセキュリティサービスへのインターフェースを提供しています。 + <ul> + <li> + <code>UserManager</code>: ユーザー管理機能を提供します。 + </li> + <li> + <code>GroupManager</code>: グループ管理機能を提供します。 + </li> + <li> + <code>RoleManager</code>: ロール管理機能を提供します。 + </li> + <li> + <code>PermissionManager</code>: パーミッション管理機能を提供します。 + </li> + </ul> + </p> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/guide.xml ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/login.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/login.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/login.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,129 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<document> + <properties> + <title>セキュリティ</title> + <subtitle>ログイン</subtitle> + <authors> + <person name="David Le Strat" email="dlest****@apach*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="ログインについて"> + <p> +ユーザー認証について、PALポータルでは JAAS のログインモジュールの実装を提供しています。 +そのため、PALポータルで提供しているログインモジュールは、標準仕様に基づいているので、認証サービスに関する詳しい情報については、JDK のドキュメントなどを参照してください。 + </p> + <p> +PALポータルのログイン処理の流れについては以下のようになります。 + </p> + <img src="../images/loginprocess.gif"/> + <p> +LoginProxyServlet にアクセスして、ログイン画面を作成するための初期値を設定後、LoginServlet でログイン画面が生成されます。 +ログイン画面で、ユーザー名とパスワードを JAAS のモデルに基づき、アプリケーションサーバーに送信して、DefaultLoginModule でログイン処理が行われます。 +実際のパスワードの検証処理などは、UserManager により行われます。 +ログインに失敗であれば、LoginErrorServlet から再度ログイン画面が表示され、成功していれば、LoginRedirectorServlet からユーザーのポータルページを表示します。 +ログアウトについては、LogoutServlet にアクセスすることで処理されます。 + </p> + </section> + <section name="ログインモジュールの設定"> + <p> +設定は、通常の JAAS 認証の設定になります。 +PALポータルでは、デフォルトで org.apache.jetspeed.security.impl.DefaultLoginModule を利用します。 +この設定ファイルは login.conf であり、jetspeed2-security-{version}.jar の中に保存されています。 +login.conf の内容は以下の通りです。 + </p> + <source><![CDATA[ +Jetspeed { + org.apache.jetspeed.security.impl.DefaultLoginModule required; +};]]></source> + <p> +この設定を上書きして変更するためには、<code>webapps/palportal/WEB-INF/classes</code> に login.conf を作成します。 +login.conf のファイル名などを変更したい場合などは、<code>security-providers.xml</code> で login.conf を指定しているので、その値を変更してください。 + </p> + <source><![CDATA[ +<bean id="org.apache.jetspeed.security.AuthenticationProvider" + class="org.apache.jetspeed.security.impl.AuthenticationProviderImpl"> + <constructor-arg index="0"><value>DefaultAuthenticator</value></constructor-arg> + <constructor-arg index="1"><value>The default authenticator</value></constructor-arg> + <constructor-arg index="2"><value>login.conf</value></constructor-arg> + <constructor-arg index="3"> + <ref bean="org.apache.jetspeed.security.spi.CredentialHandler"/> + </constructor-arg> + <constructor-arg index="4"> + <ref bean="org.apache.jetspeed.security.spi.UserSecurityHandler"/> + </constructor-arg> +</bean> +]]></source> + <p> +AuthenticationProvider は、システムプロパティの java.security.auth.login.config の値を security-providers.xml で指定した login.conf のパスを設定して、使用される LoginModule を設定します。 + </p> + </section> + <section name="ログインモジュールの実装"> + <p> +DefaultLoginModule の実装は、以下の図のようになります。 + </p> + <img src="../images/default-login-module-c.gif" border="0"/> + <p> +DefaultLoginModule で使用されるクラスの役割は以下の通りです。 + </p> + <table> + <tr> + <th>クラス名</th> + <th>説明</th> + </tr> + <tr> + <td> + <code>org.apache.jetspeed.security.impl.DefaultLoginModule</code> + </td> + <td> +javax.security.auth.spi.LoginModule の実装です。 +DefaultLoginModule での認証確認は、UserManager を利用しています。 + </td> + </tr> + <tr> + <td> + <code>org.apache.jetspeed.security.LoginModuleProxy</code> + </td> + <td> +UserManager を DefaultLoginModule で利用するためのユーティリティコンポーネントです。 + </td> + </tr> + <tr> + <td> + <code>org.apache.jetspeed.security.User</code> + </td> + <td> +User は javax.security.auth.Subject と java.util.prefs.Preferences を保持するインターフェースです。 +PALポータルでは、UserPrincipal、RolePrincipal、GroupPrincipal の 3 種類の主体を扱います。 + </td> + </tr> + <tr> + <td> + <code>org.apache.jetspeed.security.UserManager</code> + </td> + <td> +ユーザーに関する操作を提供するインターフェースです。 +このインターフェースは、様々な SPI を集約したもので、SPI で定義された機能を利用することができます。 + </td> + </tr> + </table> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/login.xml ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/portlet.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/portlet.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/portlet.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>セキュリティ</title> + <subtitle>ポートレットからの利用</subtitle> + <authors> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="ポートレットからの利用"> + <p> +UserManager などのセキュリティサービスのコンポーネントは、ポートレットからも呼び出し可能です。 +ポートレット上でそれらを利用するためには、拡張設定ファイルの jetspeed-portlet.xml をポートレットの WEB-INF に配置してください。 +jetspeed-portlet.xml で js:services タグで利用するコンポーネント名を指定することで、PortletContext からそのコンポーネントを取得することができます。 +</p> + <p> +利用方法については、「ポートレット」章の「ポータル機能の利用」を参照してください。 + </p> + </section> + </body> +</document> Property changes on: pal-portal/docs/ja/configuration-guide/trunk/xdocs/security/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Copied: pal-portal/docs/ja/configuration-guide/trunk/xdocs/userattribute/guide.xml (from rev 1141, pal-portal/docs/ja/configuration-guide/trunk/xdocs/guides/guide-user-attributes.xml) =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/xdocs/userattribute/guide.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/xdocs/userattribute/guide.xml 2008-09-12 08:13:32 UTC (rev 1161) @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<document> + <properties> + <title>ユーザー属性</title> + <subtitle>概要</subtitle> + <authors> + <person name="Ate Douma" email="ate****@douma*****"/> + <person name="加藤泰文" email="karma****@prog*****"/> + <person name="菅谷信介" email="shins****@yahoo*****"/> + </authors> + </properties> + <body> + <section name="ユーザー属性の定義"> + <p> +ポートレット仕様はどのようにしてポートレットアプリケーションがユーザー属性を使用できるのかについて定義をしています。 +たとえば、JSR 168 の PLT.17.1 では、属性に関して portlet.xml で以下のように定義されます。</p> + <source><![CDATA[ +<portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> + <user-attribute> + <description>User Given Name</description> + <name>user.name.given</name> + </user-attribute> + <user-attribute> + <description>User Last Name</description> + <name>user.name.family</name> + </user-attribute> + <user-attribute> + <description>User eMail</description> + <name>user.home-info.online.email</name> + </user-attribute> + ... +</portlet-app>]]></source> + <p> +このように属性が定義されると、ポートレットは PortletRequest インタフェースで定義された USER_INFO 定数を使って PortletRequest から変更できない Map としてログインしているユーザーの属性値にアクセスすることが可能になります。 + </p> + <source> +Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); +String givenName = (userInfo!=null) ? (String)userInfo.get("user.name.given") : ""; +String lastName = (userInfo!=null) ? (String)userInfo.get("user.name.family") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : "";</source> + <p> +ポートレット仕様で定義されないのは、ポータルが定義されたユーザー属性をユーザーの具体的な属性にどのようにマッピングするかです。 + </p> + </section> + <section name="ユーザー属性のマッピング"> + <p> +PALポータルは具体的なユーザー属性を定義したり、そのユーザー属性へのアクセスを定義したりするためにとても柔軟な方法を提供しています。</p> + <p> +ユーザー属性は PALポータルが情報を格納しておくためのデータベースとしている User Preferences を使って格納されます (これは PALポータルの殆んどのコンポーネントと同じ方法でカスタマイズできます)。 +ユーザー属性の実装は PALポータルの java.util.prefs.Preferences の実装を利用しています。 +ユーザー属性は User preferences 内の特定のノード下に格納されます。 +そして任意の名前の属性を自由に含むことができます。 +これらの具体的なユーザー属性は portlet.xml 内で以下のような 2 つの方法で定義されたユーザー属性にマップされます。 + <ol><li> + 属性名との完全一致の使用 + </li><li> + jetspeed-portlet.xml 内で定義されるカスタムマッピングの使用 + </li></ol> + </p> + <subsection name="カスタムのユーザー属性マッピング"> + <p> +もし対象とするポータルとして PALポータルを利用して新しいポートレットアプリケーションを書いたのなら、ポータル内でユーザー属性と一致する User Attributes を定義することは簡単でしょう。<br/> + しかし、もし既に存在するポートレットアプリケーションを PALポータル上に配備したいのなら、ポートレットアプリケーションに必要な属性名と PALポータルの User Preferences に格納される具体的な属性名の間のミスマッチがあるかもしれません。 + </p> + <p> + jetspeed-portlet.xml に PALポータル特有の設定やカスタマイズを記述することができます。 + このファイルの配備は PALポータルで必須ではありません。 +しかし、もしポートレットアプリケーションの war ファイル内の WEB-INF フォルダにこのドキュメントが見つかれば、処理が行われます。 + PALポータル特有の設定は "http://portals.apache.org/jetspeed" 名前空間を使って定義します。 + </p> + <p> + ユーザー属性のマッピングはカスタムのユーザー属性名を定義する "name" エレメントと、その属性名にマップされる具体的な属性名を定義する"name-link" エレメントを含む "user-attribute-ref" エレメントによって定義されます。 + </p> + <source><![CDATA[ +<portlet-app version="1.0" + xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" + xmlns:js="http://portals.apache.org/jetspeed"> + <js:user-attribute-ref> + <js:name>user-name-given</js:name> + <js:name-link>user.name.given</js:name-link> + </js:user-attribute> + <js:user-attribute-ref> + <js:name>user-name-family</js:name> + <js:name-link>user.name.family</js:name-link> + </js:user-attribute> + ... +</portlet-app>]]></source> + <p> +先の例のようなカスタムのマッピングを使って、ポートレットは次のようにユーザー属性にアクセスできます。</p> + <source> +Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); +String givenName = (userInfo!=null) ? (String)userInfo.get("user-name-given") : ""; +String lastName = (userInfo!=null) ? (String)userInfo.get("user-name-family") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : "";</source> + <p> +カスタムのマッピングが定義されていない email 属性も完全一致でのアクセスが可能であることに注意してください。 + </p> + </subsection> + </section> + </body> +</document>