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起動パラメータでサーバーを実行していることを確認します。