ヘッダーをスキップ

Oracle WebCenter Framework チュートリアル
10g(10.1.3.2.0)

E05043-01
目次
目次
索引
索引

戻る 次へ

8 セキュリティの設定

このレッスンでは、Oracle ADF Securityを使用してWebCenterアプリケーションのページを保護する方法を学びます。図8-1に、このレッスンを終えた時点でのチュートリアル・アプリケーションの外観を示します。

図8-1    レッスン8を終えた時点でのページ


画像の説明

概要

次の手順で、チュートリアル・アプリケーションにセキュリティを追加し、アプリケーションをテストします。

前提条件

この章では、埋込みOC4Jに付属の軽量XMLリソース・プロバイダsystem-jazn-data.xmlに対してユーザーを認証します。これらの演習を開始する前に、次のユーザー・データをこのファイルに追加する必要があります。

ロール名  ユーザー  説明 

page-viewer 

Singh 

このユーザーは、保護されたページを表示できます。 

page-personalizer 

Cho 

このユーザーは、保護されたページ上のポートレットをパーソナライズできます。 

page-customizer 

Harvey 

このユーザーは、保護されたページをカスタマイズできます。 

restricted-user 

King 

このユーザーは、保護されたページを表示できません。 

users 

Singh、Cho、King、Harvey、JtaAdmin、oc4jadmin 

usersロールは、有効な各ユーザーのリストを保守します。 

次のうち1つを実行してください。

この準備手順を完了したら、アプリケーションの実際の認証作業に進むことができます。

手順1: ログイン・ページの作成

この手順では、ユーザー資格証明を受け入れるログイン・ページを作成し、保護されたページへのアクセスを許可します(図8-2)。このページは、認証されていないユーザーにも表示されます。

図8-2    「Login」ページ


画像の説明

  1. アプリケーション・ナビゲータで、「ViewController」を右クリックし、「新規」を選択します。

  2. 「カテゴリ」ペインで、「Web Tier」の下の「JSP」をクリックします。

    ここでは、Facesページのライフサイクルの複雑さを避けるため、ログイン・ページをJavaServer Faces(JSF)ページではなく標準的なJSPとして実装することにします。他のアプリケーションでは、アプリケーションにスキニングやポートレットなどの拡張機能が必要になることもあります。Facesベースのログイン・ページの詳細は、『Oracle WebCenter Framework開発者ガイド』を参照してください。

  3. 「項目」で「JSP」をクリックし、「OK」をクリックします。

  4. 「次へ」をクリックして、「ようこそ」ページをスキップします。

  5. 「ファイル名」フィールドにLogin.jspxを入力します。

  6. 「タイプ」で、「JSPドキュメント(*.jspx)」を選択します。

    これによって、JSPページ(.jspx)のXML表示が作成されます。必要に応じて、他のアプリケーション内にJSPページとしてのログイン・ページを作成することもできます。

  7. 「次へ」をクリックし、再度「次へ」をクリックして、エラー・ページ・オプションをスキップします。

  8. 「タグ・ライブラリ」ページでは、何も選択しません。必要な場合、「タグ・ライブラリ」ページで二重矢印を使用して、「選択済のライブラリ」ペインからライブラリを削除します。

  9. 「次へ」をクリックします。

  10. 「終了」をクリックして、Login.jspxを表示します。

  11. 「ソース」タブをクリックします。

    これから、ログイン・フォームを表示するボディ・タグにコードを追加します。

  12. 空のボディ・タグ<body></body>を、例8-1に示したコードで置き換えます。

    例8-1    ログイン・フォームのコード

    <body>
         <h1>Login</h1>
         <p>Enter your user name and password to log in:</p>
         <form action='j_security_check' method='post'>
            <table align="center">
              <tr> <td>Name:</td>
                <td> <input type='text' name='j_username'></input> </td>
              </tr>
              <tr>
                <td>Password:</td>
                <td> <input type='password' name='j_password' size='8'></input> </td>
              </tr>
              <tr> <td></td>
                <td> <input type='submit' value='Login'></input> </td>
              </tr>
            </table>
            <br></br>
          </form>
      </body>
    
  13. 「設計」タブをクリックして、ログイン・フォームを表示します(図8-4)。

    図8-3    ログイン・フォームを備えたLogin.jspx


    画像の説明

    ログイン・ページでは、標準的なJ2EEセキュリティ・コンテナ・ログイン・メソッドであるj_security_checkを使用してユーザー資格証明が検証されます。このセキュリティ確認メソッドは、<form>要素上にあります。フォームそのものには、2つの入力フィールドがあります。1つはユーザー名を受け入れるためのフィールドで、もう1つはパスワード用のフィールドです。これらのフィールドに入力された値はそれぞれ、コンテナのログインBean属性j_usernameおよびj_passwordに割り当てられます。

    ログイン・フォーム  名前/値 

    Form Action 

    j_security_check 

    Name(テキスト・フィールド) 

    j_username 

    Password(テキスト・フィールド) 

    j_password 

    Login(送信ボタン) 

    submit 

  14. 今度は、スタイルシートをログイン・ページに適用します。コンポーネント・パレットのプルダウン・メニューから、「CSS」を選択します。

  15. 「JDeveloper」をドラッグしてページ上にドロップします。

    ログイン・ページはリフレッシュされ、新しいスタイルシートが適用されます(図8-4を参照)。

    図8-4    JDeveloperスタイルシートが適用されたLogin.jspx


    画像の説明

    次に、Login.jspxを実行して、ブラウザでページを表示します。

  16. JDeveloperのツールバーで、「すべて保存」アイコンをクリックします。

  17. 「Login.jspx」を右クリックし、「実行」を選択します。

    ブラウザにページが表示されると、ログイン・フォームが表示されます(図8-5を参照)。

    図8-5    最終的なLogin.jspx


    画像の説明

  18. ブラウザを閉じ、JDeveloperに戻ります。

今度は、チュートリアル・アプリケーションにOracle ADF Securityオプションを設定します。

手順2: ADF Security設定の構成

この手順では、Oracle ADFのセキュリティ・ウィザードを使用して、チュートリアル・アプリケーションに認証設定を構成します。選択したオプションは、web.xmlまたはorion-application.xmlに記録されます。これから行う手順の概要を簡単に示します。

詳細は、『Oracle WebCenter Framework開発者ガイド』を参照してください。

それでは、ADFセキュリティ・ウィザードを開始します。

  1. アプリケーション・ナビゲータで、「ViewController」を選択します。

  2. 「ツール」メニューから、「ADFセキュリティ・ウィザード」を選択します。

    ADFセキュリティ・ウィザードによって、構成プロセスの手順が示されます。

  3. 「次へ」をクリックして、「ようこそ」ページをスキップします。

  4. 「強制認可」を選択します(図8-6を参照)。

    このオプションでは、認証に使用されるadfAuthenticationサーブレットや、ポリシーの認可実施に必要なその他のサーブレットやフィルタ(リクエストされたページの現行ユーザーの権限のチェックを実施するフィルタ)を構成することによって、ADF Security機能を構成します。

    図8-6    ADFセキュリティ・ウィザード - 認証の有効化


    画像の説明

    アプリケーションにログインしているユーザーに対して、認証後に特定のページを表示する場合は、「認証の成功時にリダイレクト」を選択し、必要なページを指定します。ただしここでは、このようなチュートリアル・アプリケーションを構成しません。このため、デフォルトの動作(認証済ユーザーを、認証前にアクセスを試行したページに戻す)を使用します。

  5. 「次へ」をクリックして、ウィザードの次のページに進みます。

  6. 「軽量XMLプロバイダ」を選択します(図8-7)。

    図8-7    ADFセキュリティ・ウィザード - JAASプロバイダの選択


    画像の説明

    Oracle ADF Securityでは、特定のリソース・プロバイダに対してユーザーが認証されます。このチュートリアルでは、レッスンの最初に設定した軽量リソース・プロバイダsystem-jazn-data.xmlを使用します。

  7. 「次へ」をクリックして、ウィザードの次のページを表示します。

  8. 「JAASモード」を「doAsPrivileged」に設定します(図8-8)。

    Oracle ADF Securityでは、このオプションの設定が必要です。

    図8-8    ADFセキュリティ・ウィザード - XML設定の構成


    画像の説明

    デフォルト・レルムはjazn.comです。このリリースでは、アプリケーション・レベルではなくシステム・レベル(JAZNファイル)の権限のみがOracle ADF Securityによって読み取られることに注意してください。

  9. 「次へ」をクリックします。

  10. 「ログイン」ページで、「フォームベース認証」を選択します(図8-9を参照)。これによって、チュートリアル・アプリケーションで認証を簡易化するためのフォームを使用することを指定します。

    ログイン・フォームはLogin.jspxで使用するため、ログイン・フォームおよびログイン・エラー・メッセージ(login.htmlおよびerror.html)用にデフォルトのページを生成する必要はありません。

  11. 「ログイン・ページ」にLogin.jspxを入力します。

  12. 「エラー・ページ」にも、Login.jspxを入力できます。

    図8-9    ADFセキュリティ・ウィザード - フォームベース認証の構成


    画像の説明

    個別にエラー・メッセージを作成することは簡単ですが、このチュートリアルでは同じページを使用します。エラー・ページ(たとえば、LoginError.jspxなど)を作成する場合は、Login.jspxと同じページを作成し、認証の失敗を示すエラー・メッセージを追加します。

  13. 「次へ」をクリックして、ウィザードの最後のページ(「リソース」)を表示します(図8-10)。

    このページでは、保護する必要のあるアプリケーション内のリソースを定義し、各リソースにアクセスできるJ2EEセキュリティ・ロールを指定します。

    図8-10    ADFセキュリティ・ウィザード - adfAuthenticationサーブレットの保護


    画像の説明

    adfAuthenticationリソース(認証サーブレット)が定義されています。このサーブレットは、ログインURLの既知のエンドポイントとして機能します。このサーブレットそのものはJ2EEセキュリティ制約によって保護されているため、ユーザーが現在のアクティブ・セッションなしでこのサーブレットにアクセスしようとすると、ログイン・ページにリダイレクトされます。

    このリソースは編集も削除もできませんが、このリソースにアクセスできるロール・セットの指定はできます。

    adfAuthenticationリソースへの有効なユーザー・アクセスを許可するには、J2EEロールを作成してValidUsersという名前を付け、このロールにアクセス権を付与する必要があります。これから、この手順を実行します。

  14. 「ロールの管理」をクリックします。

  15. 「追加」をクリックし、ValidUsersという名前を入力します(図8-11)。

    後で、このJ2EEロールを(レッスンの最初に設定したリソース・プロバイダsystem-jazn-data.xml内に定義されている)usersという名前のIDストア・ロールにマップします。usersロールは、有効な各ユーザーのリストを保守します。

    セキュリティの観点から、このロールに権限を割り当てると、認証済のパブリック・リソースを効果的に定義できます。つまり、特定の権限を定義しなくても、すべてのユーザーに対してパブリック・リソースが使用可能になります。

    図8-11    ADFセキュリティ・ウィザード - J2EEセキュリティ・ロールの追加


    画像の説明

  16. 「OK」をクリックします。

  17. 「閉じる」をクリックします。

    「使用可能なロール」のリストに、ValidUsersロールが表示されます。

  18. 二重矢印(「すべて追加」)をクリックして、「使用可能なロール」リスト内のすべてのロールを「選択したロール」リストに移動します(図8-12)。

    図8-12    ADFセキュリティ・ウィザード - adfAuthenticationリソースへのアクセス権の付与


    画像の説明

    これで、ADFセキュリティ・ウィザードの設定は完了です。

  19. 「次へ」をクリックし、「終了」をクリックします。

  20. JDeveloperのツールバーで、「すべて保存」アイコンをクリックします。

このチュートリアルの次の手順に進む前に、web.xmlおよびorion-application.xmlに行った変更内容を確認します。これらのファイルは、アプリケーション・ナビゲータで次の場所に表示されます。

ファイル名をダブルクリックして、XMLエディタでファイルを表示します。

ヒント

タブをダブルクリックすると、そのタブをJDeveloperウィンドウいっぱいに表示できます。再度ダブルクリックすると、この機能がオフに切り替わります。 

ファイルの変更内容を確認するには、履歴ツールを使用する方法があります。「履歴」タブをクリックすると、追加した内容が右側に強調表示されます。強調表示された箇所をクリックして個別に変更することも、「次の差分に移動」アイコンを使用して、追加した内容を1つずつスクロールすることもできます。これらのエントリの詳細は、『Oracle WebCenter Framework開発者ガイド』のセキュリティに関する章を参照してください。

今度は、チュートリアル・アプリケーションのようこそページを作成します。

手順3: ようこそページの作成

この手順では、チュートリアル・アプリケーションの開始ページとなる、ようこそページを作成します。認証されていないユーザーがようこそページを表示すると、ユーザーを認証用のログイン・ページに送る簡単なログイン・リンクが表示されます。これは、ページのパブリック・ビューです(図8-13)。

図8-13    ようこそページ - パブリック・ビュー


画像の説明

認証済のユーザーには、ようこそページに別の情報が表示されます。ログイン後、認証済ユーザーはようこそページに再度リダイレクトされますが、今度は保護されたページへのリンクとログアウト・リンクが表示されます(図8-14を参照)。

図8-14    ようこそページ - 保護されたビュー


画像の説明

それでは、ようこそページを作成します。

  1. アプリケーション・ナビゲータで、「ViewController」を右クリックし、「新規」を選択します。

  2. 「カテゴリ」ペインで、「Web Tier」の下の 「JSF」をクリックして、Java Server Facesページを作成します。

  3. 「項目」で「JSF JSP」をクリックし、「OK」をクリックします。

  4. 「次へ」をクリックして、「ようこそ」ページをスキップします。

  5. 「ファイル名」フィールドにWelcome.jspxを入力します。

  6. 「タイプ」で「JSPドキュメント(*.jspx)」が選択されていることを確認し、「次へ」をクリックします。

  7. このページにはバックエンド・ロジックを追加するので、マネージドBeanが必要になります。ラジオ・ボタン「新規マネージドBeanでのUIコンポーネントの自動公開」をクリックします。

    「名前」、「クラス」および「パッケージ」は、示されているデフォルトのままにしておいてかまいません。

  8. 「次へ」をクリックします。

  9. 「選択済のライブラリ」ペインに次のライブラリが表示されていることを確認します。

    • ADF Faces Components 10_1_3_2_0

    • ADF Faces HTML 10_1_3_2_0

    • ADF Portlet Components 10_1_3_2_0

    • Customizable Components Core 10_1_3_2

    • JSF Core 1.0

    • JSF HTML 1.0

  10. 「次へ」をクリックします。

  11. 以前に、ログイン・ページにJDeveloperスタイルシートを適用しました。ようこそページにもJDeveloperスタイルシートを適用することにします。「追加」をクリックし、「css」フォルダをダブルクリックして「jdeveloper.css」を選択します。

  12. 「終了」をクリックします。

    「設計」ビューに、Welcome.jspxという名前の空のページが表示されます。

  13. 次に、ADF FacesのPanelPageコンポーネントを使用して、ようこそページにコンテンツを表示します。

    1. コンポーネント・パレットのプルダウンから、「ADF Faces Core」を選択します。

    2. 「PanelPage」オプションを選択し、ページにドラッグ・アンド・ドロップします。構造ウィンドウを使用して、PanelPageコンポーネントが「h:form」タグの中に配置されることを確認します(図8-15を参照)。

      図8-15    Welcome.jspx - ADF FacesのpanelPageコンポーネント


      画像の説明

    3. 構造ウィンドウで、「af:panelPage - Title1」をダブルクリックして、「PanelPageのプロパティ」ダイアログを表示します。

    4. 「タイトル」には、Welcome to the Oracle WebCenter Framework Tutorialを入力します。

    5. 「OK」をクリックします。

    ようこそページは、図8-16のように表示されます。このチュートリアルでは、他のaf:panelPageプロパティを設定する必要はありません。

    図8-16    新しいpanelPageタイトルが表示されたWelcome.jspx


    画像の説明

    今度は、PanelPageファセットの1つであるmenuGlobalという名前の領域へのログイン・リンクおよびログアウト・リンクを追加します。

  14. ログイン・リンクには、別のADF Faces Coreコンポーネントaf:goLinkを使用します。

    1. コンポーネント・パレットのプルダウンから、「ADF Faces Core」を選択します。

    2. 「GoLink」オプションを選択し、右上隅にあるmenuGlobalという名前の領域の上にドラッグ・アンド・ドロップします。構造ウィンドウを使用して、af:goLinkコンポーネントが「menuGlobal」ファセットの中にあることを確認します(図8-17を参照)。

      図8-17    Welcome.jspx - ADF FacesのGoLinkコンポーネント


      画像の説明

    3. 構造ウィンドウで、「af:goLink - goLink1」をダブルクリックして、「プロパティ」ダイアログを表示します。

    4. リンクの「テキスト」に、Loginを入力します。

    5. 「宛先」フィールドに、次のように入力します。

      /adfAuthentication?success_url=faces/Welcome.jspx
      

      adfAuthenticationサーブレットによって、ユーザーはログインするように要求されます。パラメータsuccess_urlは、ログイン成功後に表示されるページ(このチュートリアルではようこそページ)を指定します。

    6. 「OK」をクリックします。

    図8-18のような「Login」ハイパーリンクが表示されます。

    図8-18    ようこそページの「Login」リンク


    画像の説明

    現在表示されているページ・コンテンツ(図8-18)は、ようこそページのパブリック・ビューです。後で、いくつかのページ・ナビゲーション・ボタンを追加します。ただし、認証されていないユーザーに対してこれらのボタンが表示されないようにするためのコードを追加します。

    同様に、認証されていないユーザーに対して「Login」リンクが表示されないようにするコードも追加します。もちろん、すでにログインしているユーザーにログイン・リンクを表示する必要はありません。それでは、現在のユーザーが認証されているかどうかを判別するバッキングBeanを追加し、これをログイン・リンクにバインドします。

  15. まず、「Welcome.java」をダブルクリックして、エディタでファイルを開きます。

    このファイルは、「ViewController」「アプリケーション・ソース」「view.backing」の下にあります。

  16. 現在のユーザーがログインしているかどうかを判別するコードを追加します(図8-19で強調表示されているコードを参照)。

    図8-19    Welcome.java


    画像の説明

    ここに示されている太字のコードをコピーして、Welcome.javaの適切なセクションに貼り付けることができます。

    package view.backing;
    
    import javax.faces.component.html.HtmlForm;
    
    import oracle.adf.share.ADFContext;
    import oracle.adf.view.faces.component.core.layout.CorePanelPage;
    import ...
    
    public class Welcome {
     ...
     private CoreGoLink goLink1;
     private boolean authenticated;
     ...
    
     public CoreGoLink getGoLink1() 
      {return goLink1;
      }
     public boolean isAuthenticated()
      {
      authenticated=ADFContext.getCurrent().getSecurityContext().isAuthenticated();
      return authenticated;
      }
    }
    

    現在のユーザーがログインしている場合は、バッキングBeanのbooleanプロパティはTRUEです。ログインしていない場合は、FALSEです。このプロパティを使用して、ユーザーがログインしているかどうかに基づいて、ようこそページのリンクを表示または非表示にします。

  17. 先に進む前に、Welcome.javaへの更新内容が正しくコンパイルされたことを確認します。「Welcome.java」を右クリックし、「メイク」を選択します。

    メッセージ・ログ・ウィンドウに、「コンパイルが成功しました」というメッセージが表示されます。

  18. 次に、このコードを「Login」リンクにバインドします。「Login」リンクは認証されていないユーザーにのみ表示することを忘れないでください。

    1. アプリケーション・ナビゲータで、「Welcome.jspx」をダブルクリックして、ビジュアル・エディタでページを表示します。

    2. 構造ウィンドウで、「af:goLink - Login」をダブルクリックして、「GoLinkのプロパティ」ダイアログを開きます。

    3. 「アドバンスト・プロパティ」タブをクリックし、「Rendered」プロパティを選択します。

    4. ツールバーの「データにバインド」アイコンをクリックします(図8-20を参照)。

      図8-20    コマンド・ボタンのRenderedプロパティ


      画像の説明

    5. 「JSFマネージドBean」を開き、ようこそページbacking_WelcomeのバッキングBeanにドリルインします。この場所に、authenticated属性が表示されます。

    6. 「authenticated」をダブルクリックします。「式」フィールドに、#{backing_Welcome.authenticated}という式が表示されます。

    7. 認証されていないユーザーに「Login」リンクを表示することにします。ユーザーがログインしているときは、AuthenticatedプロパティはTRUEになるため、ユーザーがログインしていないときにのみリンクが表示されるように、式を否定する必要があります。#{!backing_Welcome.authenticated}のように、式に!演算子を追加します。

    8. 「OK」をクリックします。

      Renderedプロパティに、#{!backing_Welcome.authenticated}という式が表示されます。

    9. 再度「OK」をクリックして、「GoLinkのプロパティ」ダイアログを閉じます。

  19. 今度は、認証されていないユーザーのみに表示されるログアウト・リンクを追加します。

    1. コンポーネント・パレットのプルダウンから、「ADF Faces Core」を選択します。

    2. 「GoLink」オプションを選択し、「Login」リンクの下(menuGlobalファセットの中)にドラッグ・アンド・ドロップします。構造ウィンドウを使用して、これを確認します。

    3. 構造ウィンドウで、「af:goLink - goLink 1」をダブルクリックして、「GoLinkのプロパティ」ダイアログを開きます。

    4. リンクの「テキスト」に、Logoutを入力します。

    5. 「宛先」フィールドに、次のように入力します。

      /adfAuthentication?logout=true&end_url=faces/Welcome.jspx
      

      adfAuthenticationサーブレットによって、ユーザーはログアウトするように要求されます。パラメータend_urlは、ユーザーがログアウトした後に表示されるページを指定します。

    6. 次に、認証されていないユーザーに対して「Logout」リンクを非表示にします。「アドバンスト・プロパティ」タブをクリックし、「Rendered」プロパティを選択します。

    7. ツールバーの「データにバインド」アイコンをクリックします。

    8. 認証済のユーザーにこのリンクを表示するには、「式」フィールドに次のように入力します。

      #{backing_Welcome.authenticated}

    9. 「OK」をクリックします。

    10. 再度「OK」をクリックして、「プロパティ」ダイアログを閉じます。

    ようこそページに「Logout」ハイパーリンクが表示されます(図8-21)。

    図8-21    ようこそページの「Logout」リンク


    画像の説明

    最後に、認証済のユーザーがチュートリアルのページ(MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)にナビゲートできるように、ようこそページにいくつかのコマンド・ボタンを追加します。

  20. ページ・ナビゲーション・ボタンを含めるためには、ADF Faces panelGroupコンポーネントを使用します。このコンポーネントを使用すると、コンテンツを水平または垂直に配置できます。

    1. コンポーネント・パレットのプルダウンから、「ADF Faces Core」を選択します。

    2. 「PanelGroup」オプションを選択し、「af:panelPage」コンポーネントの上にドラッグ・アンド・ドロップします。ここでも、構造ウィンドウを使用して、panelGroupコンポーネントが「af:panelPage」タグの中にあることを確認します(図8-22を参照)。

      図8-22    Welcome.jspx - ADF FacesのPanelGroupコンポーネント


      画像の説明

    3. 構造ウィンドウで、「af:panelGroup」をダブルクリックして、「プロパティ」ダイアログを表示します。

    4. 「レイアウト」で、「水平方向」を選択します。

    5. 「OK」をクリックします。

      ページ・タイトルの下に空のパネルが表示されます(図8-23)。

      図8-23    Welcome.jspx - 空のpanelGroupコンポーネント


      画像の説明

  21. Welcome.jspxからMyPage.jspxにナビゲートするコマンド・ボタンを追加する前に、2つのページ間のJSFナビゲーション・ルールを作成する必要があります。その後は、ADFコマンド・ボタンをページにドロップし、認証済ユーザーにのみボタンを表示するボタン・コードを追加できます。

    1. まず、Welcome.jspxとMyPage.jspxの間のナビゲーション・ルールを定義します。これは、構成ファイルfaces-config.xml内で定義します。アプリケーション・ナビゲータで、(「ViewController」、「Webコンテンツ」、「WEB-INF」の下の)「faces-config.xml」をダブルクリックします。

    2. 「ダイアグラム」タブをクリックします。

    3. アプリケーション・ナビゲータから「Welcome.jspx」を空のダイアグラムにドラッグし、次に「MyPage.jspx」に対しても同じことを行います(図8-24)。

      図8-24    JSFナビゲーション・ダイアグラム


      画像の説明

      コンポーネント・パレットでJSF Navigation Modelerのコンポーネントが自動的に表示されることに注意してください。

    4. コンポーネント・パレットから、「JSFナビゲーション・ケース」を選択してアクティブにします。このコンポーネントを使用して、ナビゲーション・ルールを追加します。

    5. ダイアグラムで、ソース・ページ(Welcome.jspx)のアイコンをクリックしてから、宛先ページ(MyPage.jspx)のアイコンをクリックします。

      JDeveloperによって、ダイアグラムにナビゲーション・ルールが矢印付きの実線で描かれます。

    6. デフォルトでは、リンクの結果に-successと表示されます。このテキストをクリックし、Go To MyPageのような、より説明的なテキストに変更します(図8-25)。

      図8-25    ルールを持つJSFナビゲーション・ダイアグラム


      画像の説明

    7. 今度は、同様の手順に従って、MyPage.jspxからWelcome.jspxへのナビゲーション・ルールを作成します。まず、コンポーネント・パレットから「JSFナビゲーション・ケース」を選択します。次に、(ダイアグラムの)「MyPage.jspx」 をクリックし、続いて「Welcome.jspx」をクリックします。最後に、デフォルトの-successテキストをクリックしてGo To Welcome Pageに変更します(図8-26)。

      図8-26    2つのルールを持つJSFナビゲーション・ダイアグラム


      画像の説明

      これで2つのページ間にナビゲーション・ルールが作成されたので、ようこそページ上に、MyPageへのユーザー・ナビゲーション用のコマンド・ボタンを追加します。

    8. アプリケーション・ナビゲータで、「Welcome.jspx」をダブルクリックして、ビジュアル・エディタでこれを表示します。

    9. コンポーネント・パレットのプルダウン・メニューから、「ADF Faces Core」を選択します。

    10. 「CommandButton」オプションを選択し、「af:panelGroup」の上にドラッグ・アンド・ドロップします。構造ウィンドウを使用して、これを確認します。

    11. 新しいボタン(「commandButton 1」)を右クリックし、「プロパティ」を選択します。

    12. ボタンの「テキスト」に、Go To MyPageを入力し(図8-27を参照)、「OK」をクリックします。

      図8-27    Welcome Page.jspx - ページ・ナビゲーション・ボタンの構成


      画像の説明

    13. ボタンの実際の動作は、ボタンのActionプロパティを介して定義します。これを行うにはプロパティ・インスペクタを使用する必要があるので、JDeveloperメニューから「表示」「プロパティ・インスペクタ」を選択します。

    14. プロパティ・インスペクタで、「Action」を選択し、ドロップダウン・リストから「MyPageに移動」を選択します。

      次に、「Logout」リンクに行ったように、認証されていないユーザーに対してボタンを非表示にします。また、ログインしているユーザーにMyPage.jspxの表示権限がない場合にボタンを非表示にするコードを追加します。今度は、プロパティ・インスペクタを使用して式を入力します。

    15. Renderedプロパティを選択します。プロパティ・インスペクタでは、このプロパティは「コア」セクションの下にあります。

    16. 次に、インスペクタのツールバーで「データにバインド」アイコンをクリックします。

    17. #{backing_Welcome.authenticated && bindings.permissionInfo['MyPagePageDef'].allowsView}という式を入力します。

      この式の先頭または末尾に余分な空白がないことを確認してください。

    18. 「OK」をクリックします。

      JDeveloperで、ようこそページは図8-28のように表示されます。

      図8-28    ようこそページのMyPageナビゲーション・ボタン


      画像の説明

  22. 今度はさらに、MyWeather.jspxおよびMyContent.jspxへの認可済ユーザーのナビゲーションを可能にする2つのボタンをようこそページに追加します。手順21を、慎重に繰り返してください。

    1. まず、MyWeather.jspxおよびMyContent.jspxをナビゲーション・ダイアグラムに追加します。完了すると、ナビゲーション・ダイアグラムは図8-29のように表示されます。

      図8-29    完了後のJSFナビゲーション・ダイアグラム


      画像の説明

    2. 次に、さらに2つのボタンをWelcome.jspxに追加し、ボタンのTextActionおよびRenderedプロパティを設定します。

      これらのナビゲーション・ボタンに対するTextActionおよびRenderedプロパティを編集するときは、忘れずに、(表8-1に示す)適切なページ名に置き換え、Rendered式の最初と最後に余分な空白がないかを確認してください。

      表8-1    コマンド・ボタンのプロパティ 
      ボタンのText  Action  Rendered 

      Go To MyWeather 

      Go To MyWeather 

      #{backing_Welcome.authenticated && bindings.permissionInfo['MyWeatherPageDef'].allowsView} 

      Go To MyContent 

      Go To MyContent 

      #{backing_Welcome.authenticated && bindings.permissionInfo['MyContentPageDef'].allowsView} 

    ようこそページは、図8-30のように表示されます。

    図8-30    最終的なようこそページ


    画像の説明

  23. JDeveloperのツールバーで、「すべて保存」アイコンをクリックします。

    次に、ようこそページを実行して、追加したリンクおよびボタンが予測どおりに表示されるかどうかを調べます。

  24. 「Welcome.jspx」を右クリックし、「実行」を選択します。

    ブラウザで、「Login」リンクを備えたようこそページが表示されます(図8-31を参照)。認証されていない場合、ログアウト・リンクとページ・ナビゲーション・ボタンは表示されません。

    ページがこのように表示されない場合は、予測どおりに表示されていないリンクまたはボタンのRendered式を確認してください。

    図8-31    ようこそページ - パブリック・ビュー


    画像の説明

  25. ブラウザを閉じ、JDeveloperに戻ります。

次の手順では、アプリケーション内の各ページ(Welcome.jspx、MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)に対してアクセス権限を認可します。

手順4: ページの保護

この手順では、このチュートリアル・アプリケーション内のページ(Welcome.jspx、MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)を保護(アクセスを制限)します。IDストア内に定義されているロール・メンバー(「前提条件」を参照)へのページ・アクセスを制限し、ページ上でロール・メンバーが実行できるアクションを決定します。保護されたページにもログアウト・リンクが必要なので、各ページの一番上にログアウト・リンクも追加します。

まずは、ようこそページから開始します。このページにはすでにログアウト・リンクが備わっていますが、さらに、ページへのアクセスを認可し、許可されるアクションを指定する必要があります。この構成は、ページの定義ファイル(WelcomePageDef.xml)で行います。それでは、始めましょう。

  1. アプリケーション・ナビゲータで、「Welcome.jspx」を右クリックします。

  2. 「ページ定義に移動」を選択します。

    ページ定義がまだ存在していない場合は、「はい」をクリックして、Welcome.jspxのページ定義を作成します。

  3. 構造ウィンドウで、「WelcomePageDef」を右クリックし、「認可の編集」を選択します。

    認可エディタに、IDストアのロールがリストされます(図8-32を参照)。これらのロールが表示されない場合は、埋込みOC4JディレクトリJDEVHOME¥jdev¥system¥oracle.j2ee.10.1.3.xx.xx¥embedded-oc4j¥configからディレクトリJDEVHOME¥j2ee¥home¥configにファイルsystem-jazn-data.xmlをコピーしたことを確認してください。これは、この章の前提条件の1つとなっています。

    認可エディタでは、各ロールが実行できるページ・アクションを選択することもできます。

    • Grant: ユーザーはページ権限を管理(権限付与/取消し)できます。

    • Edit: ユーザーは、ページに表示されたコンテンツを編集できます。このリリースでは、「Edit」アクションは適用できません。

    • Customize: ユーザーはページを変更できます。この権限が付与されていないユーザーは、ページを変更できません。

    • Personalize: ユーザーは、ページ上のポートレットをパーソナライズできます。ユーザーにこの権限が付与されていない場合、ページ・ポートレットをパーソナライズ・モードにするリンクまたはボタンは表示されません。

    • View: ユーザーはページを表示できます。この権限を付与されていないユーザーには、認証エラーが表示されます。

  4. Welcome.jspxはすべての人に表示されます。anyoneロールに対して「View」チェック・ボックスを選択します(図8-32を参照)。

    図8-32    Welcome.jspx - 認可エディタ


    画像の説明

  5. 「OK」をクリックします。

    認可エディタを介して行った変更は、すぐにテストできるように、埋込みOC4Jのsystem-jazn-data.xmlファイルに保存されます。また同時に、アプリケーションの.adf/META-INFディレクトリ内のapp-jazn-data.xmlにも保存されます。app-jazn-data.xmlファイルは、アプリケーション固有のセキュリティ・ポリシーをアプリケーション自体とともにパッケージ化して、セキュアなWebCenterアプリケーションのデプロイを促進します。app-jazn-data.xmlについては、第9章「WebCenterアプリケーションのデプロイ」で詳しく学びます。

    次に、MyPage.jspxを保護します。まずログアウト・リンクを追加し、続いてページ認可詳細を編集します。新しいログアウト・リンクを最初から作成するのではなく、ようこそページに作成したログアウト・リンクをコピーします。

  6. アプリケーション・ナビゲータで、「Welcome.jspx」を選択します。

  7. 構造ウィンドウで、「af:goLink - Logout」を右クリックして、「コピー」を選択します。

  8. アプリケーション・ナビゲータで、「MyPage.jspx」を選択します。

  9. 構造ウィンドウで、「h:form」を選択し、右クリックして「貼付け」を選択します。

    デフォルトで、ページの一番下に「af:goLink - Logout」が配置されます。これを「cust:panelCustomizable」の上にドラッグして、ページの一番上に移動します
    図8-33)。

    図8-33    MyPage.jspx - 構造ウィンドウ内のログアウト・リンク


    画像の説明

    今度は、このページへのアクセスを認可し、ロールごとにロールに対して許容されるアクションを指定します。前と同様に、この構成はページの定義ファイル(MyPagePageDef.xml)で行います。

  10. アプリケーション・ナビゲータで、「MyPage.jspx」を右クリックします。

  11. 「ページ定義に移動」を選択します。

  12. 構造ウィンドウで、「MyPagePageDef」を右クリックし、「認可の編集」を選択します。

  13. 認可エディタを使用して、MyPage.jspx上のユーザー権限を付与します。図8-34に示されたチェック・ボックスを選択します。

    図8-34    MyPage.jspx - 認可エディタ


    画像の説明

    これらの設定について詳しく説明します。page-customizerロールが割り当てられたユーザー(Harveyなど)は、チュートリアル・アプリケーションにログインすると、MyPage.jspxの状況の表示、パーソナライズおよびカスタマイズはできますが、ページ・コンテンツを編集したり、他のユーザーにページ権限を付与することはできません。page-viewerロールを持つログイン済ユーザー(Singhなど)は、さらに制限が多くなります。これらのユーザーはMyPage.jspxを表示できますが、それ以外のページ・アクションは許可されません。

    restricted-userロールを持つユーザー(Kingなど)は、ページの表示権限をまったく持ちません。

  14. 「OK」をクリックして、これらの選択内容を保存します。

    これでMyPage.jspxがセキュアになったので、MyWeatherおよびMyContentにもまったく同じ手順を繰り返します。

  15. MyWeatherおよびMyContentを保護するには、手順814を繰り返します。

    ログアウト・リンクをコピーして貼り付けた後は、忘れずにリンクをページの一番上(「h:form」の下)に移動してください。

  16. JDeveloperのツールバーで、「すべて保存」アイコンをクリックします。

    これで、アプリケーション内のすべてのページがセキュアになりました。

手順5: orion-web.xmlでのセキュリティ・ロールのマッピング

チュートリアル・アプリケーションを保護するための手順が、もう1つあります。Oracle ADFセキュリティ・ウィザードを使用して定義したJ2EEセキュリティ・ロール(ValidUsers)を、system-jazn-data.xmlファイル内に定義されているIDストア・ロール(users)にマップする必要があります。

J2EEセキュリティ・ロール  IDストア・ロール 

ValidUsers 

users 

まずは、このようなセキュリティ・ロール・マッピングを格納する構成ファイル、つまり、チュートリアル・アプリケーションのOC4Jデプロイメント・ディスクリプタ・ファイル(orion-web.xml)を作成します。それでは、このファイルを作成しましょう。

  1. アプリケーション・ナビゲータで、「ViewController」を右クリックし、「新規」を選択します。

  2. 一番上のプルダウン・リストから、「すべてのテクノロジ」を選択します。

  3. 左側のパネルで、「General」を開き、「Deployment Descriptors」を選択します(図8-35を参照)。右側のパネルには、様々なタイプの使用可能なデプロイメント・ディスクリプタがリストされます。プロジェクトで使用するテクノロジや、ターゲット・アプリケーション・サーバーのタイプに応じて、様々なデプロイメント・ディスクリプタが必要になります。

    このチュートリアル・アプリケーションは、Preconfigured OC4Jサーバー上にデプロイされます。

    図8-35    デプロイメント・ディスクリプタの選択


    画像の説明

  4. 「OC4Jデプロイメント・ディスクリプタ・ウィザード」を選択し、「OK」をクリックします(図8-35)。

    これによって、OC4Jデプロイメント・ディスクリプタ・ウィザードが起動されます。このウィザードでは、必要な特定のデプロイメント・ディスクリプタのタイプおよびバージョンを選択し、.xmlファイルを生成できます。このチュートリアルでは、デプロイメント・ディスクリプタとして「orion-web.xml 10.0」を選択する必要があります。後で、アプリケーション・サーバーにデプロイする前に、この.xmlファイルを使用してチュートリアル・アプリケーションをパッケージ化します。

  5. 「次へ」をクリックして、「ようこそ」ページの先に進みます。

  6. (リストの一番下にある)「orion-web.xml」を選択し、「次へ」をクリックします。

    ファイルがすでに存在する場合は、ファイル名がグレー表示されます。

  7. 「10.0」を選択し、「終了」をクリックします。

    「終了」をクリックすると、アプリケーション・ナビゲータで「ViewController」「Webコンテンツ」「WEB-INF」の下にorion-web.xmlが表示されます。

  8. 「orion-web.xml」を右クリックし、「プロパティ」を選択して、追加のデプロイメント・オプションを設定します。

  9. 左側のパネルから、「セキュリティ・ロール・マッピング」を選択します。

    これによって、右側にパネルが表示されます。このパネルに、次のセキュリティ・ロール・マッピングを追加します。

    J2EEセキュリティ・ロール  IDストア・ロール 

    ValidUsers 

    users 

  10. 次のようにして、セキュリティ・ロール・マッピングを作成します。

    1. 「追加」をクリックします。

      これによって、図8-36に示すようなウィンドウが表示されます。このウィンドウに、J2EEセキュリティ・ロール名(ValidUsers)を入力します。

      図8-36    デプロイメント・ディスクリプタ - J2EEセキュリティ・ロール・マッピングの作成


      画像の説明

    2. 「名前」には、J2EEセキュリティ・ロール名ValidUsersを入力します。

    3. 「OK」をクリックします。

      入力したロール名が、マッピング・パネル内と「一般」タブに表示されます(図8-37)。ロール名を編集する必要がある場合は、「一般」タブの「名前」プロパティを編集します。

      図8-37    デプロイメント・ディスクリプタ - 新しいJ2EEセキュリティ・ロール・マッピング


      画像の説明

    4. 「グループ」タブをクリックします。

      マッピング・パネル内でJ2EEセキュリティ・ロールValidUsersが強調表示されていることに注意してください。これは、usersグループをこのJ2EEセキュリティ・ロールにマップするということです(図8-38)。

      図8-38    デプロイメント・ディスクリプタ - 「セキュリティ・ロール・マッピング」の「グループ」タブ


      画像の説明

    5. 「グループ名」パネルの右側にある「追加」ボタンをクリックします。

    6. 「グループ名」にusersを入力します(図8-39)。

      これは、有効な各ユーザー(Singh、Cho、Harvey、JtaAdminおよびoc4jadmin)のリストを保守するデフォルトのIDストア・ロールです。詳細は、付録A「チュートリアルのIDストアの設定方法」を参照してください。

      図8-39    デプロイメント・ディスクリプタ - J2EEセキュリティ・ロールへのusersグループのマッピング


      画像の説明

    7. 「OK」をクリックします。

    この手順では、J2EEセキュリティ・ロールValidUsersをIDストア・ロールusersにマップしました(図8-40)。

    図8-40    デプロイメント・ディスクリプタ - usersロールにマップされたJ2EEセキュリティ・ロール


    画像の説明

  11. 左側のパネルで「JAZN」を選択し、「Run asモード」および「権限モードとして実行」を選択します(図8-41を参照)。

    図8-41    デプロイメント・ディスクリプタ - JAZN設定


    画像の説明

  12. 「OK」をクリックして、OC4Jデプロイメント・ディスクリプタへの変更を保存します。

  13. JDeveloperのツールバーで、「すべて保存」アイコンをクリックします。

構成ファイルorion-web.xmlのソース・コードを調べると、security-role-mappingエントリおよびjazn-web-appエントリは次のようになっています。

<security-role-mapping name="ValidUsers" impliesAll="false">
    <group name="users"></group>
 </security-role-mapping>
<jazn-web-app runas-mode="true" doasprivileged-mode="true"/>

これで、OC4J Webアプリケーションのデプロイメント・ディスクリプタの構成は完了です。アプリケーションを実行し、新しいセキュリティ機能の動作を確認できます。

手順6: セキュリティ機能のデモ

この最後の手順では、チュートリアル・アプリケーションを実行し、導入したセキュリティ機能を調べます。これから行う手順の概要を簡単に示します。

それでは、チュートリアル・アプリケーションを実行し、これらのセキュリティ機能の動作を確認します。

ユーザーSinghとしてのログイン

まずは、ユーザーSinghとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限が割り当てられています。

  1. アプリケーション・ナビゲータで、「Welcome.jspx」を右クリックし、「実行」を選択します。

    ブラウザで、「Login」リンクを備えたようこそページが表示されます(図8-42を参照)。このリンクは、ログイン・ページLogin.jspxが表示されるように以前に構成したものです。

    図8-42    ようこそページ - パブリック・ビュー


    画像の説明

  2. 「Login」をクリックします。

    ユーザー資格証明の入力フォームを含むLogin.jspxが表示されます(図8-43を参照)。

  3. ユーザーSinghのログイン資格証明を入力します。名前とパスワードではいずれも大/小文字が区別されるため、入力する際には注意してください。「Name」にはSinghを、「Password」にはwelcomeを入力します。

    図8-43    「Login」ページ - ユーザーSinghのログイン資格証明


    画像の説明

  4. 「Login」をクリックします。

    認証が成功すると、ページの一番上に「Logout」リンクを備えたWelcome.jspxが表示されます(図8-44を参照)。ようこそページに「Login」リンクを構成したとき、Welcome.jspxを成功URLとして定義したことを思い出してください。

    図8-44    ようこそページ - 保護されたビュー


    画像の説明

  5. また、ユーザーSinghには、複数のコマンド・ボタンが表示されます。Go To MyPageというラベルのボタンをクリックします。

    ユーザーSinghは、このページを表示する権限がありますが、ページのパーソナライズまたはカスタマイズはできないはずです。これを確認するには、MyJavaPortletのアクション・メニューを調べます。

  6. ポートレット・バナーのアクション・アイコンをクリックすると、選択可能なオプションが表示されます。(表示権限を持っている)Singhとしてログインしているため、「リフレッシュ」オプションのみが選択可能になります(図8-45を参照)。

    図8-45    ユーザーSinghに選択可能なポートレット・アクション


    画像の説明

  7. 「Logout」をクリックします。

再びようこそページが表示されます。

ユーザーChoとしてのログイン

次は、ユーザーChoとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限とパーソナライズ権限の両方を持つpage-personalizerロールが割り当てられています。

  1. ようこそページを表示し、「Login」をクリックします。

  2. ユーザーChoのログイン資格証明を入力します。両方のフィールドで大/小文字が区別されることを忘れないでください。「Name」にはChoを、「Password」にはwelcomeを入力します(図8-46)。

    図8-46    「Login」ページ - ユーザーChoのログイン資格証明


    画像の説明

  3. 「Login」をクリックします。

    認証が成功すると、ページの一番上の「Logout」リンクおよび3つのページ・ナビゲーション・ボタンすべてを備えたようこそページが表示されます。

  4. 「Go To MyPage」をクリックします。

    ユーザーChoは、ポートレットの表示権限とパーソナライズ権限を持ちますが、ページまたはポートレットのカスタマイズはできないはずです。これを確認するには、MyJavaPortletのアクション・メニューを調べます。

  5. ポートレット・バナーのアクション・アイコンをクリックすると、選択可能なオプションが表示されます。Choとしてログインしているため、「リフレッシュ」と「パーソナライズ」の2つのオプションが表示されます(図8-47を参照)。

    図8-47    ユーザーChoに選択可能なポートレット・アクション


    画像の説明

  6. 「パーソナライズ」をクリックします。

  7. 「ポートレット・タイトル」を変更します。たとえば、Cho's Java Portletと入力します。

    このタイトルは、Choがログオン・ユーザーの場合のみに表示されます。他のユーザーにはこのタイトルは表示されません。

  8. 「OK」をクリックして、ユーザーChoのパーソナライズ内容を確認します。

  9. 「Logout」をクリックします。

ユーザーHarveyとしてのログイン

今度は、ユーザーHarveyとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限、パーソナライズ権限およびカスタマイズ権限を持つpage-customizerロールが割り当てられています。

  1. ようこそページを表示し、「Login」をクリックします。

  2. ユーザーHarveyのログイン資格証明を入力します。両方のフィールドで大/小文字が区別されることを忘れないでください。「Name」にはHarveyを、「Password」にはwelcomeを入力します(図8-48)。

    図8-48    「Login」ページ - ユーザーHarveyのログイン資格証明


    画像の説明

  3. 「Login」をクリックします。

    認証が成功すると、ページの一番上の「Logout」リンクおよび前と同様の複数のページ・ナビゲーション・ボタンを備えたWelcome.jspxが表示されます。

  4. 「Go To MyPage」をクリックします。

    ユーザーHarveyは、表示権限、ポートレットのパーソナライズ権限、およびこのページのカスタマイズ権限を持ちます。これを確認するには、MyJavaPortletのアクション・メニューを調べます。

  5. ポートレット・バナーのアクション・アイコンをクリックすると、選択可能なオプションが表示されます。Harveyとしてログインしているため、「移動」、「最大化」、「リフレッシュ」、「カスタマイズ」および「パーソナライズ」の5つのオプションが表示されます(図8-49を参照)。

    図8-49    ユーザーHarveyに選択可能なポートレット・アクション


    画像の説明

    ユーザーHarveyは、このページ上のコンテンツをカスタマイズまたは移動できます。そしてこれを行うと、すべてのユーザーのページを変更することになります。これは、変更を行うユーザーのみに適用されるパーソナライズとは異なります。先にユーザーChoが行ったポートレット・タイトルのパーソナライズ内容は、ユーザーHarveyには表示されないことに注意してください。

  6. 「Logout」をクリックします。

ユーザーKingとしてのログイン

最後は、ユーザーKingとしてログインします。このユーザーにはrestricted-userロールが割り当てられているため、パブリック・コンテンツにしかアクセスできません。このユーザーは、保護されたページ(MyPage、MyWeatherまたはMyContent)を表示できません。

  1. ようこそページを表示し、「Login」をクリックします。

  2. ユーザーKingのログイン資格証明を入力します。両方のフィールドで大/小文字が区別されることを忘れないでください。「Name」にはKingを、「Password」にはwelcomeを入力します(図8-50)。

    図8-50    「Login」ページ - ユーザーKingのログイン資格証明


    画像の説明

  3. 「Login」をクリックします。

    認証が成功すると、Welcome.jspxは表示されますが、ページ・ナビゲーション・ボタンは表示されません。これは、ユーザーKingにMyPage、MyWeatherまたはMyContentを表示する権限がないためです。

  4. 「Logout」をクリックします。

保護されたページへのダイレクト・アクセスの試行

前に、保護されたページに対してログイン認証を強制するセキュリティ制約を定義しました。このため、認証されていないユーザーが保護されたページにアクセスしようとすると、ユーザーは認証のためにログイン・ページにリダイレクトされるはずです。ここで、このことをテストします。

  1. アプリケーション・ナビゲータで、「MyPage.jspx」を右クリックし、「実行」を選択します。

    ブラウザが開いてページが表示されると、ターゲットのURLは次のように表示されます。
    http://123.4.56.789:8988/MySample-ViewController-context-root/faces/
    MyPage.jspx

    これは保護されたページなので、ログイン・フォームが表示されます。

  2. 有効なログイン資格証明(Harvey/welcomeなど)を入力し、「Login」をクリックします。

    ユーザーHarveyにはMyPageを表示する権限があるため、ブラウザにMyPageが表示されます。

  3. 「Logout」をクリックします。

  4. 再度MyPageへのアクセスを試行します。ブラウザで、手順1で使用したURLと同じURLを入力します。

  5. 今度は、MyPageを表示する権限のないユーザーKingとしてログインします。King/welcomeを入力し、「Login」をクリックします。

    今度は、「Unauthorized」というメッセージが表示されます。

無効な資格証明の入力

チュートリアル・アプリケーションのログイン構成の一部として、ログイン・エラー・ページを選択しました。ここで、無効なユーザー資格証明を入力してみて、動作を確認します。空のログイン・ページに戻されるはずです。

  1. アプリケーション・ナビゲータで、「Welcome.jspx」を右クリックし、「実行」を選択します。

  2. ブラウザ・ウィンドウにようこそページが表示されたら、「Login」をクリックします。

  3. 無効なユーザー資格証明を入力するか、両方のフィールドを空白にしたままにして、「Login」をクリックしたときにどのようになるか確認します。

今度は、ようこそページは表示されません。認証されていないユーザーには、空白のログイン・フォームが再び表示されます。

手順7: データ・コントロールへのアクセスの認可

ページにアクセス制限を適用すると、そのページ上のすべてのデータ・コントロールへのアクセスが自動的に制限されます。ここでは、MyContent.jpsxに配置したデータ・コントロールについて説明します。

  1. アプリケーション・ナビゲータで、「MyContent.jspx」を右クリックし、「実行」を選択します。

  2. 有効なログイン資格証明(Harvey/welcomeなど)を入力し、「Login」をクリックします。

    ブラウザにMyContent.jspxが表示されますが、今度はファイル・システム・コンテンツにアクセスできません(図8-51)。

    図8-51    ファイル・システムのデータ・コントロール - アクセス拒否


    画像の説明

    アクセスを認可するには、データ・コントロールの実行可能ファイルおよびバインディングを介して権限を付与する必要があります。これから、それを行います。

  3. アプリケーション・ナビゲータで、「MyContent.jspx」を右クリックし、「ページ定義に移動」を選択します。

  4. 構造ウィンドウで、「executables」および「bindings」を開きます(図8-52)。

    データ・コントロールのコンテンツをアクセス可能にするには、コントロールの実行可能ファイル(methodIterator)およびバインディング(methodActionとattributeValues)を介して権限を付与する必要があります。このため、MyContent.jpsx上にヘルプ・リンクを表示する場合は、getURIIter(methodIterator)、getURI(methodAction)およびgetURI_returnURI(attributeValues)の認可設定を編集する必要があります。

    同様に、ファイルの表を表示する場合は、getItemsIter(methodIterator)、getItems(methodAction)およびgetItems1(attributeValues)の認可設定を編集する必要があります。また、ツリーおよび検索フォームのデータ・コントロールに対しても同じ手順を行う必要があります。

    図8-52    MyContentPageDef.xml内のデータ・コントロールの実行可能ファイルとバインディング


    画像の説明

    それでは、表データ・コントロールに対するすべての手順を追って、この方法を確認します。

  5. まずは、表データ・コントロールの実行可能ファイルgetItemsIterの認可を編集します。

    1. 「executables」の下の「getItemsIter」を右クリックし、「認可の編集」を選択します。

    2. 次に、ログインしたすべてのユーザーに対して完全な権限を付与します。これを行うには、usersロールのすべてのボックスをチェックします(図8-53を参照)。

      図8-53    データ・コントロール実行可能ファイルの認可エディタ


      画像の説明

    3. 「OK」をクリックします。

  6. 今度は、表データ・コントロールgetItemsのmethodActionバインディングの認可を編集します。

    1. 「bindings」の下の「getItems」を右クリックし、「認可の編集」を選択します。

    2. ログインしたすべてのユーザーに権限を付与するには、usersロールのボックスをチェックします(図8-54を参照)。

      図8-54    データ・コントロールmethodActionバインディングの認可エディタ


      画像の説明

    3. 「OK」をクリックします。

  7. 最後は、表データ・コントロールgetItems1のattributeValuesバインディングごとに認可を編集します。

    1. 「getItems1」を右クリックし、「認可の編集」を選択します。

    2. 最初の属性MyTutorialContent.getItems.nameに完全な権限を付与するには、usersロールのすべてのボックスをチェックします(図8-55を参照)。

      図8-55    データ・コントロールattributeValuesバインディングの認可エディタ


      画像の説明

    3. 「権限の付与」ボックスにリストされている属性ごとに、これを繰り返します。たとえば、「権限の付与」ボックスを開き、「MyTutorialContent.getItems.path」を選択して、すべてのボックスをチェックします。これを繰り返します。

    4. 「OK」をクリックします。

  8. 再度ページを実行する前に、埋込みOC4Jサーバーを停止します。メイン・メニューから「実行」「終了」「埋込みOC4Jサーバー」の順に選択します。

  9. 再度MyContent.jspxを実行し、Harvey/welcomeなどの有効な資格証明を使用してログインします。

    今度は、表データ・コントロールにファイルがリストされます(図8-56を参照)。

    図8-56    表データ・コントロールへのアクセス認可


    画像の説明

    必要に応じて、手順57を繰り返すことにより、MyContent.jspx上の他のデータ・コントロールへのアクセスを有効化することもできます。

おめでとうございます。これでレッスンは完了です。最初のWebCenterアプリケーションが保護されました。最後のレッスンでは、デプロイメントと、Enterprise Manager(管理者がWebCenterアプリケーションをデプロイ、構成および管理できるブラウザベースのツール)の使用方法について学びます。


戻る 次へ
Oracle
Copyright © 2007 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引