許可の定義

許可の定義

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

許可の実装

手順1/4

Liferay DXPの権限フレームワークは、Service Builderと同様に宣言的に構成されます。 慣例により default.xml と呼ばれるXMLファイルですべてのアクセス許可を定義します(ただし、実際には任意の名前で呼び出すことができます)。 次に、コード内の次の場所にアクセス許可チェックを実装します。

  • ビューレイヤーで、保護された機能へのリンクまたはボタンを表示する場合
  • アクションで、保護されたアクションを実行する前に
  • 後で、サービスで、リモートサービスを呼び出す前に

最初に必要な権限を定義する必要があります。 開始するには、アプリケーションの使用例と、その機能へのアクセスをどのように制御するかを考えてください。

  • [ゲストブックの追加]ボタンは、管理者のみが使用できるようにする必要があります。

  • ゲストブックのタブは、管理者がそれらを表示できるユーザーを制御できるように、アクセス許可でフィルタリングする必要があります。

  • 匿名ユーザーがゲストブックをスパムしないようにするには、[エントリの追加]ボタンはサイトメンバーのみが使用できるようにする必要があります。

  • ユーザーは、自分のエントリにアクセス許可を設定できる必要があります。

これで、アクセス許可の構成を作成する準備が整いました。 アプリケーション内のオブジェクト( Guestbook および Entry)は リソースとして定義され、 リソースアクション ユーザーがこれらのリソースと対話する方法を管理します。 したがって、ポートレットのアクセス許可とリソース(またはモデル)のアクセス許可の2種類のアクセス許可があります。 ポートレット許可は、 Add Entryなどのグローバル機能へのアクセスを保護します。 ユーザーがそのグローバル機能にアクセスする権限を持っていない場合、ポートレットの権限がありません。 リソース許可は、 Guestbook および Entryなどのオブジェクトへのアクセスを保護します。 ユーザは、1つ表示する権限有していてもよい エントリー、表示と編集別の 入力、別のアクセスすることができない場合が 項目 全く。 これは、リソースの許可によるものです。

図1:ポートレットのアクセス許可とリソースのアクセス許可は、アプリケーションのさまざまな部分をカバーしています。

最初に、 guestbook-service プロジェクトで許可ファイルを作成します。

  1. META-INF フォルダーで、 resource-actionsというサブフォルダーを作成します。

  2. このフォルダーに default.xmlという新しいファイルを作成します。

  3. [ ソース ]タブをクリックします。 次の DOCTYPE 宣言をファイルの先頭に追加します。

    <?xml version="1.0"?>
    <!DOCTYPE resource-action-mapping PUBLIC "-//Liferay//DTD Resource Action  
    Mapping 7.1.0//EN" "http://www.liferay.com/dtd/liferay-resource-action-mapping_7_1_0.dtd">
    
  4. 次のラッパータグを default.xml ファイルの DOCTYPE 宣言の下に配置します。

    <resource-action-mapping>
    
    </resource-action-mapping>
    

    これらのタグ内でリソースとモデルの権限を定義します。

  5. 次に、 com.liferay.docs.guestbook パッケージのアクセス許可を <resource-action-mapping> タグの間に配置します。

    <model-resource>
        <model-name>com.liferay.docs.guestbook</model-name>
        <portlet-ref>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookPortlet</portlet-name>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookAdminPortlet</portlet-name>
        </portlet-ref>
    

本当 ADD_GUESTBOOK ADD_ENTRY VIEW ADD_ENTRY 見る ADD_GUESTBOOK ADD_ENTRY

これは、 `ゲストブック` および `エントリ` エンティティのベースライン構成を定義します。 サポートされるアクションは `ADD_GUESTBOOK` および `ADD_ENTRY`です。 サイトメンバーはデフォルトで `ADD_ENTRY` を設定できますが、ゲストはどちらのアクションも実行できません(ただし、表示することはできます)。
  1. その下、ただし終了 </resource-action-mapping>に、 Guestbook モデルのアクセス許可を配置します。

    <model-resource>
        <model-name>com.liferay.docs.guestbook.model.Guestbook</model-name>
        <portlet-ref>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookPortlet</portlet-name>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookAdminPortlet</portlet-name>
        </portlet-ref><permissions>
            <supports>
                <action-key>ADD_ENTRY</action-key>
                <action-key>削除</action-key>
                <action-key>許可</action-key>
                <action-key>更新</action-key>
                <action-key>見る</action-key>
            </supports>
            <site-member-defaults>
                <action-key>ADD_ENTRY</action-key>
                <action-key>見る</action-key>
            </site-member-defaults>
            <guest-defaults>
                <action-key>見る</action-key>
            </guest-defaults>
            <guest-unsupported>
                <action-key>更新</action-key>
            </guest-unsupported>
        </permissions>
    

    これは、追加、削除、更新、表示など、 ゲストブック 固有のアクションを定義し` 。 デフォルトでは、サイトメンバーとゲストはゲストブックを表示できますが、ゲストはそれらを更新できません。

  • Guestbook` モデルのパーミッションの下に、まだ ``の終了の上に、 `Entry` モデルのパーミッションを配置します。

        <model-resource>
            <model-name>com.liferay.docs.guestbook.model.Entry</model-name>
            <portlet-ref>
                <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookPortlet</portlet-name>
            </portlet-ref><permissions>
                <supports>
                    <action-key>削除</action-key>
                    <action-key>許可</action-key>
                    <action-key>更新</action-key>
                    <action-key>見る</action-key>
                </supports>
                <site-member-defaults>
                    <action-key>見る</action-key>
                </site-member-defaults>
                <guest-defaults>
                    <action-key>見る</action-key>
                </guest-defaults>
                <guest-unsupported>
                    <action-key>更新</action-key>
                </guest-unsupported>
            </permissions>
     </model-resource>
    
    これにより、 `エントリ` 固有のアクションが定義され` 。 デフォルトでは、サイトメンバーはエントリを追加または表示でき、ゲストはエントリのみを表示できます。</p></li>
    
  • ファイルを保存します。

  • 次に、許可が定義されている場所をフレームワークに伝える必要があります。 モデルが定義されているモジュールでリソースとモデルのアクセス許可を定義します。

    1. guestbook-service`の `src / main / resources` フォルダーで、 `portlet.properties`というファイルを作成します。

      1. このファイルに、次のプロパティを配置します。

        resource.actions.configs=META-INF/resource-actions/default.xml
        

      このプロパティは、権限定義ファイルの名前と場所を定義します。

      これでモデルレベルで権限が定義されましたが、ポートレットの権限も定義する必要があります。 これらは、ポートレットクラスを含む guestbook-web モジュールで管理されます。 guestbook-web モジュールにポートレット権限を追加するには、次の手順に従います。

      1. src / main / resources / META-INF フォルダーに resource-actions というサブフォルダーを作成します。

      2. このフォルダーに default.xmlという新しいファイルを作成します。

      3. 次の DOCTYPE 宣言をファイルの先頭に追加します。

        <?xml version="1.0"?>
        <!DOCTYPE resource-action-mapping PUBLIC "-//Liferay//DTD Resource Action  
        Mapping 7.1.0//EN" "http://www.liferay.com/dtd/liferay-resource-action-mapping_7_1_0.dtd">
        
      4. DOCTYPE 宣言の下に、次の resource-action-mapping タグを追加します。

        <resource-action-mapping>
        
        </resource-action-mapping>
        

        これらのタグ内でポートレットの許可を定義します。

      5. 次のコードブロックを resource-action-mapping タグ内に挿入します。

        <portlet-resource>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookAdminPortlet</portlet-name><permissions>
                <supports>
                    <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                    <action-key>構成</action-key>
                    <action-key>見る</action-key>
                </supports>
                <site-member-defaults>
                    <action-key>見る</action-key>
                </site-member-defaults>
                <guest-defaults>
                    <action-key>見る</action-key>
                </guest-defaults>
                <guest-unsupported>
                    <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                    <action-key>構成</action-key>
                </guest-unsupported>
            </permissions>
        

        これにより、ゲストブック管理ポートレットのデフォルトの権限が定義されます。 これは、アクションをサポート ACCESS_IN_CONTROL_PANELCONFIGURATION、および VIEW。 誰でもアプリを表示できますが、ゲストとサイトメンバーはコントロールパネルでアプリを構成したりアクセスしたりすることはできません。 これはコントロールパネルポートレットであるため、これは事実上、管理者のみがアクセスできることを意味します。

      6. Guestbook Admin権限の下に、次のコードブロックを挿入します。

        <portlet-resource>
            <portlet-name>com_liferay_docs_guestbook_portlet_GuestbookPortlet</portlet-name><permissions>
                <supports>
                    <action-key>ADD_TO_PAGE</action-key>
                    <action-key>構成</action-key>
                    <action-key>見る</action-key>
                </supports>
                <site-member-defaults>
                    <action-key>見る</action-key>
                </site-member-defaults>
                <guest-defaults>
                    <action-key>見る</action-key>
                </guest-defaults>
                <guest-unsupported />
            </permissions>
        

        これにより、ゲストブックポートレットの権限が定義されます。 これは、アクションをサポート ADD_TO_PAGECONFIGURATION、および VIEW。 サイトのメンバーとゲストは、デフォルトで VIEW 許可を取得します。

      7. ファイルを保存します。

      8. guestbook-websrc / main / resources フォルダーに、 portlet.propertiesというファイルを作成します。

      9. このファイルに、次のプロパティを配置します。

        resource.actions.configs=META-INF/resource-actions/default.xml
        
      10. ファイルを保存します。

      よくやった\! これで、アプリケーションのアクセス許可スキームが正常に設計および実装されました。 次に、サービス層で権限をサポートするJavaコードを作成します。

      « リソースと許可の使用定義済みの権限を登録する »
    この記事は役に立ちましたか?
    0人中0人がこの記事が役に立ったと言っています