| Oracle® Fusion Middleware Oracle JDeveloperによるWebCenter Portalアセットとカスタム・コンポーネントの開発 12c (12.2.1.2.0) E82735-01 |
|
![]() 前 |
![]() 次 |
この章のトピックは、次のとおりです:
デフォルトで、MDSはページ・コンポーネントのアプリケーション・カスタマイズを制限します。つまり、ユーザーは実行時にコンポーネントまたはその属性をカスタマイズできません。アプリケーション・カスタマイズを有効にするには、コンポーネントおよびその属性のデフォルト制限を解除する必要があります。Page Customizableコンポーネントをページに追加し、それにコンテンツを移入する場合、Page Customizableおよびそのすべての子コンポーネントのデフォルトのカスタマイズ制限が解除されます。ただし、Page Customizableコンポーネントがテンプレートの一部である場合などのインスタンスによっては、コンポーネントおよびその属性のアプリケーション・カスタマイズを明示的に許可する必要がある場合があります。この項では、コンポーネントおよびその属性にMDSのタイプ・レベルの制限またはインスタンス・レベルの制限を適用する方法について説明します。
この項には次のサブセクションが含まれます:
注意:
ページ・テンプレートを使用したカスタマイズ可能ページの作成の詳細は、「カスタマイズ可能ページを作成するページ・テンプレートの作成方法」を参照してください。
コンポーネントにタイプ・レベルの制限を適用する場合は、そのコンポーネントのすべてのインスタンスが制限されます。これは、ユーザーの特定の集合のみに特定のコンポーネントまたはその属性の編集を許可し、他のすべてのユーザーにそれの編集を制限する場合に便利です。たとえば、ページ作成者またはアプリケーション管理者のみに実行時のページ・レイアウトの変更を許可する場合は、タイプ・レベルの制限をLayout Customizableコンポーネントに対して定義し、adminロールを有するユーザーのみにこのコンポーネントの編集を可能にできます。
スタンドアロンXMLファイルのコンポーネントおよびその属性に対してタイプ・レベルの制限を有効化し、このファイルをadf-config.xmlファイルのmds-configセクションまたはmds-config.xmlファイルに登録できます。スタンドアロンXMLファイルには、カスタマイズ制限を指定する必要があるタイプに一致する注釈が含まれています。
mds-config.xmlファイルをアプリケーションのMETA-INFディレクトリに作成し、スタンドアロン・ファイルをmds-config.xmlファイルに登録できます。
選択したコンポーネントまたは属性のアプリケーション・カスタマイズをタイプ・レベルで可能にするには:
インスタンス・レベルの制限は、コンポーネントの特定インスタンスのカスタマイズを許可または制限する場合に便利です。インスタンス・レベルのカスタマイズ・ポリシーのコードは、タイプ・レベルのポリシー定義で使用されるコードと似ています。ただし、インスタンス・レベルのポリシーは、タイプ・レベルのポリシーをオーバーライドします。つまり、インスタンス・レベルの制限では、タイプからの制限に関係なく、trueが保持されます。たとえば、ログイン・ページ、およびユーザー・プリファレンス・ページなどの他のページで、いくつかのUI要素があるフォームを使用している場合は、ユーザーに、ログイン・ページ上以外のフォームのすべてのインスタンスをカスタマイズすることを許可できます。このためには、タイプ・レベルでフォームのカスタマイズを許可して、ログイン・ページ内のインスタンスにのみカスタマイズを制限できます。
コンポーネントまたはその属性のカスタマイズをインスタンス・レベルで可能にできます。コンポーネント・レベルでカスタマイズ制限を適用するために、コンポーネントのcustomizationAllowed属性とcustomizationAllowedBy属性をJDeveloperで設定できます(「タイプ・レベルのカスタマイズ・ポリシーの定義方法」を参照)。コンポーネントの属性に制限を適用するには、この項で説明した手順を実行します。
コンポーネント属性のためのインスタンス・レベルのポリシーはRDFファイルで定義します。RDFファイルはMDSによって取得され、ポリシーが実装されます。
インスタンス・レベルのカスタマイズ・ポリシーを定義するには:
実行時に、これらのポリシーが読み取られ、それに応じてアーチファクトのカスタマイズも可能になります。
この項では、様々なユーザー・ロールおよび責任に基づいて、特定のコンポーネント機能へのアクセスを制限するためにどのようにコンポーネント・レベルの制限を使用できるかを説明します。特に、インスタンス・レベルのカスタマイズ制限をPanel Customizableコンポーネントに適用して、adminロールを有するユーザーのみにカスタマイズ・アクセスを提供する方法を説明します。つまり、adminロールを有するユーザーが実行時にシステムにログインする場合、ユーザーはインスタンス・レベルのカスタマイズが適用されたPanel Customizableをカスタマイズできます。
コンポーザの「プロパティ・インスペクタ」では、admin権限がないユーザーにはPanel Customizableのプロパティが表示されません。制限されたコンポーネントでは、「編集」アイコンまたはメニュー・アイテムは無効です。これらのユーザーは、適用された制限のため、どのMovable BoxもPanel Customizableにドロップできません。また、このPanel Customizable内のShow Detail Frameを再配置できません。
ユーザー・ロールに基づいて機能を制限することは、カスタマイズ制限を適用するための1つの方法です。コンポーネント機能へのアクセスを有効化または制限するために、ロール・ベースの結果を提供するExpression Language式(EL)を使用することもできます。
注意:
MDSのカスタマイズ制限は、SplitterおよびshowDetailItemなどのADF Facesコンポーネントではなく、Panel Customizable、Show Detail FrameおよびLayout Customizableコンポーネントによってのみネイティブで受け入れられます。
この項には次のサブセクションが含まれます:
インスタンス・レベルのカスタマイズ制限を適用する前に、ADFセキュリティを使用してアプリケーションを保護する必要があります。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のADFセキュリティの有効化に関する項を参照してください。
前の項では、実行時に、adminロールを有するユーザーのみがPanel Customizableのすべての機能にアクセスして、その属性をカスタマイズできるよう、Panel Customizableコンポーネントにカスタマイズ制限が適用されます。
この項では、adminおよびcustomerという2つのロールが作成され、両方のユーザーにページ権限が付与されます。adminロールを有するユーザーは、Panel Customizable (panelCustomizable1)コンポーネントをカスタマイズできます。ただし、前の項で適用したカスタマイズ制限のため、customerロールを有するユーザーはpanelCustomizable1をカスタマイズする権限がなく、これらのユーザーはpanelCustomizable1のすべての機能は使用できません。
jazn-data.xmlファイルでロールを作成するには:
ユーザーとロールの作成の詳細は、『Oracle Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「Fusion WebアプリケーションでのADFセキュリティの有効化」の章を参照してください。
adminロールを有するユーザーのみがPanel Customizableのすべての機能にアクセスできるという、Panel Customizableコンポーネントの予期された実行時動作(それをカスタマイズする機能を含む)を可能にするには、このリクエストのためのMDSセッションにおいてそのカスタマイズ・ポリシーにそのユーザー・ロールを含める必要があります。これを実現するには、次のカスタマイズ・ポリシーをSessionOptionsオブジェクトに含めます。
SecurityContext stx = ADFContext.getCurrent().getSecurityContext(); cPol = new CustomizationPolicy(stx.getUserRoles());
次に、このカスタマイズ・ポリシーを持つMDSセッションが作成されます。
ComposerSessionOptionsFactoryクラスを実装するには:
「コンポーザでの実装の登録方法」で説明した手順を実行して、MDSセッションのカスタマイズ・ポリシーにユーザー・ロールが含まれていたComposerSessionOptionsFactoryクラスの実装を登録します。
WebCenterComposerFilterを構成するには、「WebCenterComposerFilterの構成方法」で説明した手順を実行します。
この項では、Panel Customizableコンポーネント上の特定ロールに対してアプリケーション・カスタマイズを有効にします。実行時に、adminなど、指定したロールのみが、その属性のカスタマイズを含むPanel Customizableのすべての機能にアクセスできます。他のロールを有するユーザーも、限られたコンポーネント機能のみを使用できます。
インスタンス・レベルのカスタマイズ制限を適用するには:
注意:
この手順は、複数のコンポーネントを示すことによって実行時の動作をより説明しやすいよう、説明のためのみにあります。
実行時の処理は、ログオンしているユーザーによって異なります。違いを確認するには、あるユーザーとしてログインしてから別のユーザーとしてログインしてください。次に例を示します。
アプリケーション・ナビゲータでJSPXページを右クリックし、「実行」を選択します。
adminロールを有するユーザーとしてページにログインし、編集モードに切り替えます。Panel Customizableコンポーネントの内と外に、「コンテンツの追加」ボタンおよび「編集」アイコンが表示されます。図29-7で示すように、adminロールを有するユーザーとして、外側にあるPanel Customizableのプロパティにアクセスできます。つまり、adminロールを有するユーザーは、このコンポーネントを編集できます。
customerロールを有するユーザーとしてページにログインし、編集モードに切り替えます。Panel Customizable外では、「コンテンツの追加」ボタンおよび「編集」アイコンは使用できません。つまり、このコンポーネントは、customerロールを有するユーザーには編集できません。「構造」ビューでは、「コンテンツの追加」アイコンと「編集」アイコンはコンポーネントに対してグレー表示されます。
デフォルトでは、Page Customizableコンポーネントは、その下にあるすべてのコンポーネントのアプリケーション・カスタマイズを有効にします。これを、いくつかのコンポーネントに対してカスタマイズを制限するように変更できます。Page Customizableコンポーネントは、ネストされたページまたはフラグメント上にあるコンポーネントに対してカスタマイズを有効にしません。このようなコンポーネントに対して手動でカスタマイズを有効にする必要があります。このような要件に対処するために、MDSは、customizationAllowed属性およびcustomizationAllowedBy属性を提供しています。これらの属性は、ページ上の特定コンポーネントに対するカスタマイズの有効化または制限に使用できます。
customizationAllowed属性は、コンポーネントを実行時にカスタマイズできるかどうかを制御します。この属性をfalseに設定する場合は、コンポーネントを実行時にカスタマイズできません。つまり、「コンポーネント・プロパティ」ダイアログでは、プロパティはグレー表示され、編集は許可されません。
customizationAllowedBy属性は、カスタマイズを可能にするロールを指定します。
この項では、コンポーネントに対してカスタマイズを有効化および制限する例を提供します。次のサブセクションが含まれます:
詳細は、『Oracle Fusion Middleware Oracle Application Development Framework FusionによるWebアプリケーションの開発』の拡張されたメタデータのプロパティに関する項を参照してください。
特定のコンポーネント属性を実行時にカスタマイズできるかどうかを選択できます。また、属性に行われた変更がMDSなどの永続ストアまで持続する必要があるかどうかを指定できます。次の方法で、属性レベルのセキュリティを適用できます。
プロパティ・フィルタを定義することによる
コンポーネント・レベルで変更を持続させることによる
プロパティ・フィルタの適用の詳細は、「プロパティ・フィルタの定義方法」を参照してください。
この項では、コンポーネント・レベルで変更を持続させる方法を説明します。次のサブセクションが含まれます:
アプリケーションが、変更を持続させるためにFilteredPersistenceChangeManagerを使用して構成されている場合は、adf-config.xmlファイル内のpersist-changes属性を使用して、特定の属性への変更を持続させる必要があるかどうかを指定できます。
注意:
変更の永続性の詳細は、「永続性変更マネージャの構成」を参照してください。
adf-config.xmlで設定できるコンポーザ固有の構成の詳細は、「adf-config.xml」を参照してください。
次の例は、いくつかの属性のために定義されたpersist-changes属性を持つサンプルのadf-config.xmlファイルを示しています。
<adf-config xmlns="http://xmlns.oracle.com/adf/config">
<adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/config">
<persistent-change-manager>
<persistent-change-manager-class>
oracle.adf.view.rich.change.MDSDocumentChangeManager
</persistent-change-manager-class>
</persistent-change-manager>
<taglib-config>
<taglib uri="http://xmlns.oracle.com/adf/pageeditor">
<tag name="imageLink">
<attribute name="destination">
<persist-changes>true</persist-changes>
</attribute>
</tag>
<tag name="customAction">
<attribute name="text">
<persist-changes>true</persist-changes>
</attribute>
<attribute name="icon">
<persist-changes>true</persist-changes>
</attribute>
</tag>
</taglib>
</taglib-config>
</adf-faces-config>
</adf-config>
Panel CustomizableコンポーネントおよびShow Detail Frameコンポーネントに対してアクションを実行するユーザーの能力は、ページ・セキュリティから継承します。継承は、adf-config.xmlファイル内のアプリケーション規模のスイッチenableSecurityの値に基づきます。アプリケーションを作成するときに「WebCenter Portal Frameworkアプリケーション」テンプレートを選択すると、adf-config.xmlファイルは、「アプリケーション・リソース」パネルのDescriptorsの下のADF META-INFフォルダに配置されます。
この項では、Panel CustomizableおよびShow Detail Frameコンポーネント・アクションに対してアクション・レベルの制限を適用する方法を説明します。次のサブセクションが含まれます:
enableSecurity要素は、デフォルトではadf-config.xml内で使用できません。Panel CustomizableコンポーネントおよびShow Detail Frameコンポーネントのページ・レベルのセキュリティ継承を上書きまたは拡張するには、次の例に示すように、customizableComponentsSecurityセクションをadf-config.xmlファイルに追加して、そのセクション内のenableSecurity要素をtrueに設定します。
<cust:customizableComponentsSecurity xmlns="http://xmlns.oracle.com/adf/faces/customizable/config"> <cust:enableSecurity value="true"/> <cust:actionsCategory> .......................................... </cust:customizableComponentsSecurity>
アクションに対する制限は、次のレベルで実装できます。
ページ・レベル: Oracle WebCenter Portalのカスタマイズ可能コンポーネントがページ・レベルの権限を継承するように、これらのコンポーネントのセキュリティを定義できます。これはデフォルトの動作です。
デフォルトでは、カスタマイズ可能コンポーネントは、編集、パーソナライズまたはカスタマイズなど定義されているページ・レベル権限から、許容されるアクションを継承します。つまり、ページに対する編集、パーソナライズまたはカスタマイズの権限を有するユーザーは、そのページに対する表示モードのユーザー・カスタマイズを実行できます。enableSecurity要素によって、セキュリティ継承動作をオーバーライドできます。次の値のいずれかを取ることができます。
true: trueに設定した場合(指定されていない場合はデフォルト)、ユーザーがコンポーネントを変更できるかどうかは、まずページ権限に基づいて決定され、次に、そのタイプの権限に対して指定されている現在のアクション・セットに応じて調整されます。たとえば、ユーザーがカスタマイズ権限を持っている場合、カスタマイズ・カテゴリを構成するアクション(移動、カスタマイズなど)はユーザーに使用できますが、adf-config.xmlファイルで定義されるアクションによってオーバーライドされます。
false: falseに設定した場合、すべてのアクションがユーザーに選択可能になります。adf-config.xmlで構成されたアクションとユーザーのページ権限は無視されます。
アクション・カテゴリ・レベル: Panel CustomizableコンポーネントおよびShow Detail Frameコンポーネントのすべてのアクションに対してセキュリティを定義できます。
adf-config.xmlファイル内にactionsCategory要素を追加すると、複数のアクションに対するセキュリティを同時に定義できます。有効化したactionCategory属性に基づいて、コンポーネントに適切な権限が設定されます。
アクション・レベル: Panel CustomizableコンポーネントおよびShow Detail Frameコンポーネントの個々のアクションに対してセキュリティを定義できます。
adf-config.xmlファイル内でactions要素を使用すると、各アクションを有効化または無効化できます。有効化したactions属性に基づいて、コンポーネントに適切な権限が設定されます。
注意:
adf-config.xmlファイルでenableSecurityをtrueに設定し、アクションまたはアクション・カテゴリに対する制限を定義する場合は、これらの制限を有効にするために、表示権限に加えて、ページに対してパーソナライズ権限またはカスタマイズ権限を付与する必要があります。
enableSecurity要素を使用しないかfalseに設定する場合、ページ・レベルの権限は受け入れられます。このような場合、ページではデフォルトですべてのカスタマイズ可能コンポーネント・アクションがレンダリングされるため、ページに対する表示権限があるだけで十分です。
権限は、親からのみ継承できます。階層内の他の位置にあるコンポーネントからの継承は、サポートされていません。
アクション・カテゴリ・レベルまたはアクション・レベルで定義された制限は、アプリケーション全体にわたるPanel CustomizableコンポーネントまたはShow Detail Frameコンポーネントのすべてのインスタンスに適用できます。コンポーネントの単一インスタンスに対して制限を適用できません。
adf-config.xmlファイルでenableSecurityをtrueに設定する場合、アプリケーション・レベルでコンポーネント・アクションのセキュリティを定義できます。trueの値は、adf-config.xml内に指定されているactionsCategoryおよびactionsの値以外に権限チェックが行われることを示します。
adf-config.xmlファイルのカスタマイズ可能コンポーネント・アクション・セキュリティ・セクションにactionsCategory要素を追加して、複数のPanel CustomizableおよびShow Detail Frameコンポーネント・アクションに対するセキュリティを定義できます。有効化したactionsCategory属性に基づいて、コンポーネントに適切な権限が設定されます。
adf-config.xmlファイルのactionsおよびactionsCategory要素には、特定のデフォルト・マッピングがあります。表29-1に、様々なactionsCategory属性と、デフォルトでサポートされるアクションを示します。
adf-config.xmlで設定できるコンポーザ固有の構成の詳細は、「adf-config.xml」を参照してください。
表29-1 アクション・カテゴリおよびアクション・マッピング
| actionsCategory | サポートされるアクション |
|---|---|
|
showMoveAction showRemoveAction showMinimizeAction showResizer allowAction |
|
showEditAction showAddContentAction showSplitAction |
personalizeActionsCategory設定およびcustomizeActionsCategory設定の組合せに基づくコンポーネントの動作は、次のとおりです。
personalizeActionsCategoryおよびcustomizeActionsCategoryの両方がfalseに設定される場合、ユーザーは、Show Detail Frameコンポーネントを移動、展開、折りたたみ、削除、サイズ変更または編集できず、Panel Customizableコンポーネントを編集または削除することや、それらにコンテンツを追加することもできません。
personalizeActionsCategoryがtrueに設定され、customizeActionsCategoryがfalseに設定される場合、ユーザーは、Show Detail Frameコンポーネントを移動、展開、折りたたみ、削除またはサイズ変更できますが、それらを編集できません。また、Panel Customizableコンポーネントを削除して、それらの内部にコンポーネントを再配置できますが、それらを編集することやページにコンポーネントを追加できません。
注意:
他のアクション設定と同様に、allowAction設定は、ページへのコンテンツの追加およびページ上のコンテンツの移動または再配置の機能を制御します。詳細は、「アクション・レベルでのセキュリティの定義」を参照してください。
personalizeActionsCategoryおよびcustomizeActionsCategoryの両方がtrueに設定される場合、ユーザーは、Show Detail Frameコンポーネントを移動、展開、折りたたみ、削除、サイズ変更および編集でき、Panel Customizableコンポーネントを編集および削除することや、それらにコンテンツを追加することもできます。ユーザーは、「コンテンツの追加」ボタンを使用してリソース・カタログからコンテンツを追加することや、「ボックスを追加」の各アイコンを使用してBoxコンポーネントを追加することや、ドラッグ・アンド・ドロップすることで他のPanel Customizableコンポーネントからコンポーネントを移動できます。
注意:
権限が付与からカスタマイズ、パーソナライズ、表示の順にカスケードするため、personalizeActionsCategoryをfalseに設定し、customizeActionsCategoryをtrueに設定することはお薦めできません。つまりカスタマイズを有効にする場合は、ユーザーにすでにページに対するパーソナライズ権限がある必要があります。
次の例は、adf-config.xmlファイルのカスタマイズ可能コンポーネント・アクション・セキュリティ・セクションに追加できるactionsCategoryエントリを示しています。
<cust:customizableComponentsSecurity
xmlns="http://xmlns.oracle.com/adf/faces/customizable/config">
<cust:enableSecurity value="true"/>
<cust:actionsCategory>
<cust:actionCategory name="personalizeActionsCategory" value="true"/>
<cust:actionCategory name="customizeActionsCategory" value="false"/>
</cust:actionsCategory>
<cust:actions>
..........................................
</cust:actions>
</cust:customizableComponentsSecurity>
次の例に示すように、これらの要素の値にはELも使用できます。
<cust:actionsCategory>
<cust:actionCategory name="personalizeActionsCategory" value="#{appBusinessRules.InsideCorpNetwork}"/>
</cust:actionsCategory>
adf-config.xmlファイルのカスタマイズ可能コンポーネント・アクション・セキュリティ・セクション内でactions要素を使用して、個々のShow Detail Frameアクションを表示または非表示できます。有効化したactions属性に基づいて、Show Detail Frameコンポーネントに適切な権限が設定されます。
adf-config.xmlで設定できるコンポーザ固有の構成の詳細は、「adf-config.xml」を参照してください。
他のアクション設定と同様に、allowAction設定は、ページへのコンテンツの追加およびページ・コンテンツの移動または再配置の機能を制御します。
コンポーザでは、ユーザーは次の方法でコンテンツを追加および再配置できます。
「ボックスの追加」アイコンを使用してBoxコンポーネントを追加します。
「コンテンツの追加」ボタンを使用して、リソース・カタログからBoxコンポーネント内にコンテンツを追加します。
Show Detail Frameコンポーネントの「アクション」メニューで「上へ移動」および「下へ移動」アクションを使用することで、Panel Customizableコンポーネント内でShow Detail Frameコンポーネントを移動します。
Panel Customizableコンポーネントと交わるようにShow Detail Frameコンポーネントをドラッグ・アンド・ドロップします。
表29-2に、allowAction設定およびshowAddContentAction設定に応じてコンテンツを追加できるかどうかを示します。
allowActionをtrueに設定して、showAddContentActionをfalseに設定すると、ユーザーは、「ボックスを追加」の各アイコンを使用してBoxコンポーネントを追加することと、ページ上のPanel Customizableコンポーネント間でShow Detail Frameコンポーネントをドラッグ・アンド・ドロップすることはできますが、「コンテンツの追加」ボタンを使用してコンポーネントを追加することはできなくなります。
注意:
Panel Customizableコンポーネントで「コンテンツの追加」ボタンを使用できるようにするには、allowActionとshowAddContentActionの両方をtrueに設定する必要があります。
allowActionとshowAddContentActionの両方をtrueに設定すると、ユーザーは、Panel Customizableコンポーネント内で「コンテンツの追加」ボタンを使用してリソース・カタログからコンテンツを追加することも、別のPanel Customizableコンポーネントからドラッグ・アンド・ドロップしてコンテンツを追加することもできます。さらに、「ボックスを追加」の各アイコンを使用して、Boxコンポーネントを追加することもできます。
allowActionをfalseに設定して、showAddContentActionをtrueに設定すると、「コンテンツの追加」ボタンと「ボックスを追加」の各アイコンが使用できなくなるため、ユーザーはページにコンテンツを追加できなくなります。
表29-2 ページへのコンテンツの追加のためのアクション設定
| allowAction設定 | showAddContentAction設定 | 「コンテンツの追加」ボタンが表示されているかどうか |
|---|---|---|
|
|
はい |
|
|
いいえ |
|
true |
いいえ |
|
|
いいえ |
表29-3では、allowAction設定およびshowSplitAction設定に応じて「ボックスの追加」アイコンを使用してコンテンツを追加する機能を説明します。
表29-3 ページでのコンテンツの再配置のためのアクション設定
| allowAction設定 | showSplitAction設定 | 「ボックスの追加」アイコンが表示されているかどうか |
|---|---|---|
|
|
はい |
|
|
いいえ |
|
|
いいえ |
|
|
いいえ |
表29-4では、allowActionおよびshowMoveAction設定によってページにコンテンツを移動する機能を説明します。
表29-4 ページでのコンテンツの移動のためのアクション設定
| allowAction設定 | showMoveAction設定 | ページ上でコンテンツを移動したかどうか |
|---|---|---|
|
|
はい |
|
|
いいえ |
|
|
いいえ |
|
|
いいえ |
注意:
アクション・カテゴリ・レベルおよびアクション・レベルの両方でセキュリティを定義し、一部のアクションの値が矛盾する場合は、falseの値がtrueより優先されます。たとえば、personalizeActionsCategoryをtrueに設定し、allowActionをfalseに設定する場合、ユーザーは、実行時にアプリケーションのページにコンテンツを追加できません。同様に、personalizeActionsCategoryをfalseに設定するがallowActionをtrueに設定する場合も、ユーザーは、実行時にアプリケーションのページにコンテンツを追加できません。
アクション設定を使用した制限は、ページの「コンテンツの追加」ビューまたは「デザイン」ビューでのみ適用できます。つまり、Show Detail FrameコンポーネントでshowEditAction、showRemoveActionなどのアクションをfalseに設定する場合、ユーザーはページの「コンテンツの追加」ビューまたは「デザイン」ビューでこのようなコンポーネントを編集または削除できません。ただし、ユーザーは「構造」ビューでこのようなコンポーネントを選択して、それらを編集または削除できます。
次の例は、adf-config.xmlファイルのカスタマイズ可能コンポーネント・アクション・セクションに追加できるactionsエントリを示しています。要素値にはELを使用できます。
<cust:customizableComponentsSecurity
xmlns="http://xmlns.oracle.com/adf/faces/customizable/config">
<cust:enableSecurity value="true"/>
<cust:actionsCategory>
..........................................
</cust:actionsCategory>
<cust:actions>
<cust:action name="showMinimizeAction" value="true"/>
<cust:action name="showMoveAction" value="false"/>
</cust:actions>
</cust:customizableComponentsSecurity>
タスク・フロー編集権限は、タスク・フローを編集する体験に非常に大きな影響を与えるため、タスク・フローに対する編集権限はデフォルトでは無効になっています。実際に、デフォルトでは、タスク・フローに対して権限は与えられていません。適切な権限を有するユーザーのみがタスク・フローを編集できることを確実にするには、コンポーザのコンテキストで次の2つのタスクを実行することで、タスク・フローのセキュリティを実装できます。
タスク・フローに明示的に編集、カスタマイズまたは付与権限を与えます。
コンポーザでタスク・フローの権限をチェックできるようにして、適切な権限を有するユーザーにのみタスク・フローの編集またはカスタマイズを許可します。
この項では、タスク・フローに対して制限を適用して権限チェックを可能にする方法を説明します。次のサブセクションが含まれます:
jazn-data.xmlファイル概要エディタの「リソース権限」ページで権限付与を作成することで、タスク・フローのアクセス・ポリシーを定義できます。作成した権限は、ファイルのポリシー・ストア・セクションのメタデータとして表示されます。これらの権限またはパーミッションは、コンポーザでのタスク・フローのズーム・インおよび編集の機能を制御します。
jazn-data.xmlファイルでのタスク・フローに対する権限を付与または取り消すには:
注意:
customize権限とview権限を付与する場合は、ファイルのソース・ビューに権限付与が次のように表示されます。
<permissions>
<permission>
<class>oracle.adf.controller.security.TaskFlowPermission</class>
<name>/WEB-INF/task-flow-definition.xml#task-flow-definition</name>
<actions>customize,view</actions>
</permission>
</permissions>
TaskFlowPermissionクラスは、タスク・フローの操作にマップされるタスク・フロー固有アクションを定義します。
タスク・フロー権限に基づくコンポーザの動作の詳細は、「ページおよびタスク・フローのセキュリティ」を参照してください。
タスク・フローに付与する権限を定義する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のADFバインド・タスク・フローのセキュリティ・ポリシーを定義する方法に関する項を参照してください。
デフォルトでは、ユーザーがタスク・フローを編集しようとするときに、コンポーザはタスク・フローの権限をチェックしません。タスク・フローのセキュリティを強化するには、タスク・フローの権限をチェックして編集に必要な権限を有するユーザーのみを許可するように、コンポーザを構成する必要があります。それを行うには、次の例で示すように、アプリケーションのadf-config.xmlファイル内の<pe:task-flow-security>要素のcheck-permissionプロパティを設定します。
<pe:page-editor-config>
<pe:security-config>
<pe:task-flow-security check-permission="true" />
</pe:security-config>
</pe:page-editor-config>
adf-config.xmlの設定の詳細は、「adf-config.xml」を参照してください。
注意:
前のリリースでは、次のJVMパラメータを使用してサーバーを実行することで、タスク・フローに対して権限チェックを有効にできました。
-Doracle.composer.enableTaskflowPermissionCheck=true
ただし、現在この方法は非推奨です。後方互換性のために、コンポーザは、最初にenableTaskflowPermissionCheckフラグをチェックしてから、adf-config.xmlファイル内の設定をチェックします。
コンポーザでは、カスタマイズを有効にするために次のセキュリティ・チェックが実行されます。
ページ上のリージョンが編集権限またはカスタマイズ権限を付与されています。
タスク・フローが編集権限またはカスタマイズ権限を付与されてます。
注意:
これは、デフォルトでは有効になっていない、オプションのセキュリティ設定です。
コンポーネントはイテレータではネストされていません。
MDSカスタマイズ制限がコンポーネントおよび属性に適用されています。
ユーザーは、前述の条件を満たしている場合のみ、ページおよびタスク・フローをカスタマイズできます。デフォルトでは、コンポーザは、ページ・レベルのセキュリティ・チェックを実行するためにpagePolicyを使用します。
場合によっては、様々なセキュリティ・チェックの実行が必要になることがあります(おそらく、コンポーザに備わっているチェックに、いくつかのアプリケーション・レベルのチェックを追加することになります)。これは、コンポーザのデフォルトのセキュリティ・ポリシーをカスタム・ポリシーでオーバーライドすることで実施します。この項では、その実行方法を説明します。内容は次のとおりです。
コンポーザの基本セキュリティ・クラスを拡張することで、カスタム・ポリシーを作成できます。ページまたはタスク・フローをチェックするかどうかに応じて、次の基本セキュリティ・クラスを拡張できます。
ページ・ポリシー: oracle.adf.view.page.editor.security.BasePageSecurityPolicy
タスク・フロー・ポリシー: oracle.adf.view.page.editor.security.TaskflowPermissionPolicy
もう一歩前進するために、カスタム・チェックが適用できない場合や適切な結果を実現しない場合には、コンポーザのデフォルト・チェックが実行されるようにポリシーを構成できます。このためには、DefaultPageSecurityPolicyクラスを拡張して、次の例に示すように、super.isCustomizable()メソッドをコールする必要があります。
public class CustomPageSecurityPolicy extends DefaultPageSecurityPolicy
{
. . .
public boolean isCustomizable()
{
// Security checks that this custom page policy must perform should go here
. . .
// If we cannot determine the security policy, chain it to Composer's default implementation
return super.isCustomizable();
}
}
コンポーザのセキュリティ・ポリシーをオーバーライドするようにカスタム・ポリシーを構成するには、<pe:security-config>セクションをアプリケーションのadf-config.xmlファイルに含めて、カスタム・セキュリティ・ポリシーを登録する必要があります。
カスタム・セキュリティ・ポリシーを登録するには:
この項では、コンポーザ・コンポーネントの使用中に発生する可能性のあるセキュリティ関連の問題をトラブルシューティングする際に役立つ情報を提供します。
ロギングの構成の詳細は、「コンポーザのADFロギングの構成」を参照してください。
問題
Show Detail FrameおよびPanel Customizableで「編集」アイコンが表示されないか、Panel Customizableで「コンテンツの追加」ボタンが表示されません。また、Panel Customizableコンポーネントの外部にShow Detail Frameを移動できないか、別のPanel Customizableコンポーネントにドロップできません。
解決策
MDSを使用することでPanel Customizableが制限されていることと、adf-config.xmlでエントリを使用することでコンポーネント・アクションが保護されていないことを確認します。
問題
jazn-data.xmlファイルでタスク・フローに権限を付与できません。
解決策
「タスク・フローのセキュリティの実装」で説明したように、Java起動パラメータでサーバーを実行していることを確認します。