| Oracle WebCenter Framework チュートリアル 10g(10.1.3.2.0) E05043-01 |
|
このレッスンでは、Oracle ADF Securityを使用してWebCenterアプリケーションのページを保護する方法を学びます。図8-1に、このレッスンを終えた時点でのチュートリアル・アプリケーションの外観を示します。
次の手順で、チュートリアル・アプリケーションにセキュリティを追加し、アプリケーションをテストします。
この章では、埋込みOC4Jに付属の軽量XMLリソース・プロバイダsystem-jazn-data.xmlに対してユーザーを認証します。これらの演習を開始する前に、次のユーザー・データをこのファイルに追加する必要があります。
次のうち1つを実行してください。
system-jazn-data.xmlを、第2章の「サンプルのsystem-jazn-data.xmlファイルのコピー」に示されているJDeveloperの場所にコピーします。サンプルには、この章を完了するために必要なすべてのユーザー・データが含まれています。
JDeveloperでセキュアなアプリケーションをすでに構築中で、独自のユーザー・データをsystem-jazn-data.xmlに移入した場合は、この方法を使用します。
この準備手順を完了したら、アプリケーションの実際の認証作業に進むことができます。
この手順では、ユーザー資格証明を受け入れるログイン・ページを作成し、保護されたページへのアクセスを許可します(図8-2)。このページは、認証されていないユーザーにも表示されます。
ここでは、Facesページのライフサイクルの複雑さを避けるため、ログイン・ページをJavaServer Faces(JSF)ページではなく標準的なJSPとして実装することにします。他のアプリケーションでは、アプリケーションにスキニングやポートレットなどの拡張機能が必要になることもあります。Facesベースのログイン・ページの詳細は、『Oracle WebCenter Framework開発者ガイド』を参照してください。
Login.jspxを入力します。
これによって、JSPページ(.jspx)のXML表示が作成されます。必要に応じて、他のアプリケーション内にJSPページとしてのログイン・ページを作成することもできます。
これから、ログイン・フォームを表示するボディ・タグにコードを追加します。
<body></body>を、例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>
ログイン・ページでは、標準的な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 |
ログイン・ページはリフレッシュされ、新しいスタイルシートが適用されます(図8-4を参照)。
次に、Login.jspxを実行して、ブラウザでページを表示します。
ブラウザにページが表示されると、ログイン・フォームが表示されます(図8-5を参照)。
今度は、チュートリアル・アプリケーションにOracle ADF Securityオプションを設定します。
この手順では、Oracle ADFのセキュリティ・ウィザードを使用して、チュートリアル・アプリケーションに認証設定を構成します。選択したオプションは、web.xmlまたはorion-application.xmlに記録されます。これから行う手順の概要を簡単に示します。
詳細は、『Oracle WebCenter Framework開発者ガイド』を参照してください。
それでは、ADFセキュリティ・ウィザードを開始します。
ADFセキュリティ・ウィザードによって、構成プロセスの手順が示されます。
このオプションでは、認証に使用されるadfAuthenticationサーブレットや、ポリシーの認可実施に必要なその他のサーブレットやフィルタ(リクエストされたページの現行ユーザーの権限のチェックを実施するフィルタ)を構成することによって、ADF Security機能を構成します。
アプリケーションにログインしているユーザーに対して、認証後に特定のページを表示する場合は、「認証の成功時にリダイレクト」を選択し、必要なページを指定します。ただしここでは、このようなチュートリアル・アプリケーションを構成しません。このため、デフォルトの動作(認証済ユーザーを、認証前にアクセスを試行したページに戻す)を使用します。
Oracle ADF Securityでは、特定のリソース・プロバイダに対してユーザーが認証されます。このチュートリアルでは、レッスンの最初に設定した軽量リソース・プロバイダsystem-jazn-data.xmlを使用します。
Oracle ADF Securityでは、このオプションの設定が必要です。
デフォルト・レルムはjazn.comです。このリリースでは、アプリケーション・レベルではなくシステム・レベル(JAZNファイル)の権限のみがOracle ADF Securityによって読み取られることに注意してください。
ログイン・フォームはLogin.jspxで使用するため、ログイン・フォームおよびログイン・エラー・メッセージ(login.htmlおよびerror.html)用にデフォルトのページを生成する必要はありません。
Login.jspxを入力します。
Login.jspxを入力できます。
個別にエラー・メッセージを作成することは簡単ですが、このチュートリアルでは同じページを使用します。エラー・ページ(たとえば、LoginError.jspxなど)を作成する場合は、Login.jspxと同じページを作成し、認証の失敗を示すエラー・メッセージを追加します。
このページでは、保護する必要のあるアプリケーション内のリソースを定義し、各リソースにアクセスできるJ2EEセキュリティ・ロールを指定します。
adfAuthenticationリソース(認証サーブレット)が定義されています。このサーブレットは、ログインURLの既知のエンドポイントとして機能します。このサーブレットそのものはJ2EEセキュリティ制約によって保護されているため、ユーザーが現在のアクティブ・セッションなしでこのサーブレットにアクセスしようとすると、ログイン・ページにリダイレクトされます。
このリソースは編集も削除もできませんが、このリソースにアクセスできるロール・セットの指定はできます。
adfAuthenticationリソースへの有効なユーザー・アクセスを許可するには、J2EEロールを作成してValidUsersという名前を付け、このロールにアクセス権を付与する必要があります。これから、この手順を実行します。
ValidUsersという名前を入力します(図8-11)。後で、このJ2EEロールを(レッスンの最初に設定したリソース・プロバイダsystem-jazn-data.xml内に定義されている)usersという名前のIDストア・ロールにマップします。usersロールは、有効な各ユーザーのリストを保守します。
セキュリティの観点から、このロールに権限を割り当てると、認証済のパブリック・リソースを効果的に定義できます。つまり、特定の権限を定義しなくても、すべてのユーザーに対してパブリック・リソースが使用可能になります。
「使用可能なロール」のリストに、ValidUsersロールが表示されます。
これで、ADFセキュリティ・ウィザードの設定は完了です。
このチュートリアルの次の手順に進む前に、web.xmlおよびorion-application.xmlに行った変更内容を確認します。これらのファイルは、アプリケーション・ナビゲータで次の場所に表示されます。
ファイル名をダブルクリックして、XMLエディタでファイルを表示します。
ファイルの変更内容を確認するには、履歴ツールを使用する方法があります。「履歴」タブをクリックすると、追加した内容が右側に強調表示されます。強調表示された箇所をクリックして個別に変更することも、「次の差分に移動」アイコンを使用して、追加した内容を1つずつスクロールすることもできます。これらのエントリの詳細は、『Oracle WebCenter Framework開発者ガイド』のセキュリティに関する章を参照してください。
今度は、チュートリアル・アプリケーションのようこそページを作成します。
この手順では、チュートリアル・アプリケーションの開始ページとなる、ようこそページを作成します。認証されていないユーザーがようこそページを表示すると、ユーザーを認証用のログイン・ページに送る簡単なログイン・リンクが表示されます。これは、ページのパブリック・ビューです(図8-13)。
認証済のユーザーには、ようこそページに別の情報が表示されます。ログイン後、認証済ユーザーはようこそページに再度リダイレクトされますが、今度は保護されたページへのリンクとログアウト・リンクが表示されます(図8-14を参照)。
それでは、ようこそページを作成します。
Welcome.jspxを入力します。
「名前」、「クラス」および「パッケージ」は、示されているデフォルトのままにしておいてかまいません。
「設計」ビューに、Welcome.jspxという名前の空のページが表示されます。
「h:form」タグの中に配置されることを確認します(図8-15を参照)。
Welcome to the Oracle WebCenter Framework Tutorialを入力します。
ようこそページは、図8-16のように表示されます。このチュートリアルでは、他のaf:panelPageプロパティを設定する必要はありません。
今度は、PanelPageファセットの1つであるmenuGlobalという名前の領域へのログイン・リンクおよびログアウト・リンクを追加します。
af:goLinkを使用します。
menuGlobalという名前の領域の上にドラッグ・アンド・ドロップします。構造ウィンドウを使用して、af:goLinkコンポーネントが「menuGlobal」ファセットの中にあることを確認します(図8-17を参照)。
Loginを入力します。
/adfAuthentication?success_url=faces/Welcome.jspx
adfAuthenticationサーブレットによって、ユーザーはログインするように要求されます。パラメータsuccess_urlは、ログイン成功後に表示されるページ(このチュートリアルではようこそページ)を指定します。
図8-18のような「Login」ハイパーリンクが表示されます。
現在表示されているページ・コンテンツ(図8-18)は、ようこそページのパブリック・ビューです。後で、いくつかのページ・ナビゲーション・ボタンを追加します。ただし、認証されていないユーザーに対してこれらのボタンが表示されないようにするためのコードを追加します。
同様に、認証されていないユーザーに対して「Login」リンクが表示されないようにするコードも追加します。もちろん、すでにログインしているユーザーにログイン・リンクを表示する必要はありません。それでは、現在のユーザーが認証されているかどうかを判別するバッキングBeanを追加し、これをログイン・リンクにバインドします。
このファイルは、「ViewController」、「アプリケーション・ソース」、「view.backing」の下にあります。
ここに示されている太字のコードをコピーして、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です。このプロパティを使用して、ユーザーがログインしているかどうかに基づいて、ようこそページのリンクを表示または非表示にします。
メッセージ・ログ・ウィンドウに、「コンパイルが成功しました」というメッセージが表示されます。
authenticated属性が表示されます。
#{backing_Welcome.authenticated}という式が表示されます。
#{!backing_Welcome.authenticated}のように、式に!演算子を追加します。
Renderedプロパティに、#{!backing_Welcome.authenticated}という式が表示されます。
Logoutを入力します。
/adfAuthentication?logout=true&end_url=faces/Welcome.jspx
adfAuthenticationサーブレットによって、ユーザーはログアウトするように要求されます。パラメータend_urlは、ユーザーがログアウトした後に表示されるページを指定します。
#{backing_Welcome.authenticated}
ようこそページに「Logout」ハイパーリンクが表示されます(図8-21)。
最後に、認証済のユーザーがチュートリアルのページ(MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)にナビゲートできるように、ようこそページにいくつかのコマンド・ボタンを追加します。
panelGroupコンポーネントを使用します。このコンポーネントを使用すると、コンテンツを水平または垂直に配置できます。
「af:panelPage」コンポーネントの上にドラッグ・アンド・ドロップします。ここでも、構造ウィンドウを使用して、panelGroupコンポーネントが「af:panelPage」タグの中にあることを確認します(図8-22を参照)。
ページ・タイトルの下に空のパネルが表示されます(図8-23)。
faces-config.xml内で定義します。アプリケーション・ナビゲータで、(「ViewController」、「Webコンテンツ」、「WEB-INF」の下の)「faces-config.xml」をダブルクリックします。
コンポーネント・パレットでJSF Navigation Modelerのコンポーネントが自動的に表示されることに注意してください。
JDeveloperによって、ダイアグラムにナビゲーション・ルールが矢印付きの実線で描かれます。
-successと表示されます。このテキストをクリックし、Go To MyPageのような、より説明的なテキストに変更します(図8-25)。
-successテキストをクリックしてGo To Welcome Pageに変更します(図8-26)。
これで2つのページ間にナビゲーション・ルールが作成されたので、ようこそページ上に、MyPageへのユーザー・ナビゲーション用のコマンド・ボタンを追加します。
「af:panelGroup」の上にドラッグ・アンド・ドロップします。構造ウィンドウを使用して、これを確認します。
「commandButton 1」)を右クリックし、「プロパティ」を選択します。
Go To MyPageを入力し(図8-27を参照)、「OK」をクリックします。
次に、「Logout」リンクに行ったように、認証されていないユーザーに対してボタンを非表示にします。また、ログインしているユーザーにMyPage.jspxの表示権限がない場合にボタンを非表示にするコードを追加します。今度は、プロパティ・インスペクタを使用して式を入力します。
#{backing_Welcome.authenticated && bindings.permissionInfo['MyPagePageDef'].allowsView}という式を入力します。この式の先頭または末尾に余分な空白がないことを確認してください。
JDeveloperで、ようこそページは図8-28のように表示されます。
これらのナビゲーション・ボタンに対するText、ActionおよびRenderedプロパティを編集するときは、忘れずに、(表8-1に示す)適切なページ名に置き換え、Rendered式の最初と最後に余分な空白がないかを確認してください。
ようこそページは、図8-30のように表示されます。
次に、ようこそページを実行して、追加したリンクおよびボタンが予測どおりに表示されるかどうかを調べます。
ブラウザで、「Login」リンクを備えたようこそページが表示されます(図8-31を参照)。認証されていない場合、ログアウト・リンクとページ・ナビゲーション・ボタンは表示されません。
ページがこのように表示されない場合は、予測どおりに表示されていないリンクまたはボタンのRendered式を確認してください。
次の手順では、アプリケーション内の各ページ(Welcome.jspx、MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)に対してアクセス権限を認可します。
この手順では、このチュートリアル・アプリケーション内のページ(Welcome.jspx、MyPage.jspx、MyWeather.jspxおよびMyContent.jspx)を保護(アクセスを制限)します。IDストア内に定義されているロール・メンバー(「前提条件」を参照)へのページ・アクセスを制限し、ページ上でロール・メンバーが実行できるアクションを決定します。保護されたページにもログアウト・リンクが必要なので、各ページの一番上にログアウト・リンクも追加します。
まずは、ようこそページから開始します。このページにはすでにログアウト・リンクが備わっていますが、さらに、ページへのアクセスを認可し、許可されるアクションを指定する必要があります。この構成は、ページの定義ファイル(WelcomePageDef.xml)で行います。それでは、始めましょう。
ページ定義がまだ存在していない場合は、「はい」をクリックして、Welcome.jspxのページ定義を作成します。
認可エディタに、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つとなっています。
認可エディタでは、各ロールが実行できるページ・アクションを選択することもできます。
認可エディタを介して行った変更は、すぐにテストできるように、埋込み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を保護します。まずログアウト・リンクを追加し、続いてページ認可詳細を編集します。新しいログアウト・リンクを最初から作成するのではなく、ようこそページに作成したログアウト・リンクをコピーします。
デフォルトで、ページの一番下に「af:goLink - Logout」が配置されます。これを「cust:panelCustomizable」の上にドラッグして、ページの一番上に移動します
(図8-33)。
今度は、このページへのアクセスを認可し、ロールごとにロールに対して許容されるアクションを指定します。前と同様に、この構成はページの定義ファイル(MyPagePageDef.xml)で行います。
これらの設定について詳しく説明します。page-customizerロールが割り当てられたユーザー(Harveyなど)は、チュートリアル・アプリケーションにログインすると、MyPage.jspxの状況の表示、パーソナライズおよびカスタマイズはできますが、ページ・コンテンツを編集したり、他のユーザーにページ権限を付与することはできません。page-viewerロールを持つログイン済ユーザー(Singhなど)は、さらに制限が多くなります。これらのユーザーはMyPage.jspxを表示できますが、それ以外のページ・アクションは許可されません。
restricted-userロールを持つユーザー(Kingなど)は、ページの表示権限をまったく持ちません。
これでMyPage.jspxがセキュアになったので、MyWeatherおよびMyContentにもまったく同じ手順を繰り返します。
ログアウト・リンクをコピーして貼り付けた後は、忘れずにリンクをページの一番上(「h:form」の下)に移動してください。
これで、アプリケーション内のすべてのページがセキュアになりました。
チュートリアル・アプリケーションを保護するための手順が、もう1つあります。Oracle ADFセキュリティ・ウィザードを使用して定義したJ2EEセキュリティ・ロール(ValidUsers)を、system-jazn-data.xmlファイル内に定義されているIDストア・ロール(users)にマップする必要があります。
| J2EEセキュリティ・ロール | IDストア・ロール |
|---|---|
|
ValidUsers |
users |
まずは、このようなセキュリティ・ロール・マッピングを格納する構成ファイル、つまり、チュートリアル・アプリケーションのOC4Jデプロイメント・ディスクリプタ・ファイル(orion-web.xml)を作成します。それでは、このファイルを作成しましょう。
このチュートリアル・アプリケーションは、Preconfigured OC4Jサーバー上にデプロイされます。
これによって、OC4Jデプロイメント・ディスクリプタ・ウィザードが起動されます。このウィザードでは、必要な特定のデプロイメント・ディスクリプタのタイプおよびバージョンを選択し、.xmlファイルを生成できます。このチュートリアルでは、デプロイメント・ディスクリプタとして「orion-web.xml 10.0」を選択する必要があります。後で、アプリケーション・サーバーにデプロイする前に、この.xmlファイルを使用してチュートリアル・アプリケーションをパッケージ化します。
ファイルがすでに存在する場合は、ファイル名がグレー表示されます。
「終了」をクリックすると、アプリケーション・ナビゲータで「ViewController」、「Webコンテンツ」、「WEB-INF」の下にorion-web.xmlが表示されます。
これによって、右側にパネルが表示されます。このパネルに、次のセキュリティ・ロール・マッピングを追加します。
| J2EEセキュリティ・ロール | IDストア・ロール |
|---|---|
|
ValidUsers |
users |
これによって、図8-36に示すようなウィンドウが表示されます。このウィンドウに、J2EEセキュリティ・ロール名(ValidUsers)を入力します。
ValidUsersを入力します。
入力したロール名が、マッピング・パネル内と「一般」タブに表示されます(図8-37)。ロール名を編集する必要がある場合は、「一般」タブの「名前」プロパティを編集します。
マッピング・パネル内でJ2EEセキュリティ・ロールValidUsersが強調表示されていることに注意してください。これは、usersグループをこのJ2EEセキュリティ・ロールにマップするということです(図8-38)。
usersを入力します(図8-39)。これは、有効な各ユーザー(Singh、Cho、Harvey、JtaAdminおよびoc4jadmin)のリストを保守するデフォルトのIDストア・ロールです。詳細は、付録A「チュートリアルのIDストアの設定方法」を参照してください。
この手順では、J2EEセキュリティ・ロールValidUsersをIDストア・ロールusersにマップしました(図8-40)。
構成ファイル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アプリケーションのデプロイメント・ディスクリプタの構成は完了です。アプリケーションを実行し、新しいセキュリティ機能の動作を確認できます。
この最後の手順では、チュートリアル・アプリケーションを実行し、導入したセキュリティ機能を調べます。これから行う手順の概要を簡単に示します。
それでは、チュートリアル・アプリケーションを実行し、これらのセキュリティ機能の動作を確認します。
まずは、ユーザーSinghとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限が割り当てられています。
ブラウザで、「Login」リンクを備えたようこそページが表示されます(図8-42を参照)。このリンクは、ログイン・ページLogin.jspxが表示されるように以前に構成したものです。
ユーザー資格証明の入力フォームを含むLogin.jspxが表示されます(図8-43を参照)。
Singhを、「Password」にはwelcomeを入力します。
認証が成功すると、ページの一番上に「Logout」リンクを備えたWelcome.jspxが表示されます(図8-44を参照)。ようこそページに「Login」リンクを構成したとき、Welcome.jspxを成功URLとして定義したことを思い出してください。
ユーザーSinghは、このページを表示する権限がありますが、ページのパーソナライズまたはカスタマイズはできないはずです。これを確認するには、MyJavaPortletのアクション・メニューを調べます。
再びようこそページが表示されます。
次は、ユーザーChoとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限とパーソナライズ権限の両方を持つpage-personalizerロールが割り当てられています。
Choを、「Password」にはwelcomeを入力します(図8-46)。
認証が成功すると、ページの一番上の「Logout」リンクおよび3つのページ・ナビゲーション・ボタンすべてを備えたようこそページが表示されます。
ユーザーChoは、ポートレットの表示権限とパーソナライズ権限を持ちますが、ページまたはポートレットのカスタマイズはできないはずです。これを確認するには、MyJavaPortletのアクション・メニューを調べます。
Cho's Java Portletと入力します。このタイトルは、Choがログオン・ユーザーの場合のみに表示されます。他のユーザーにはこのタイトルは表示されません。
今度は、ユーザーHarveyとしてログインします。このユーザーには、MyPage、MyWeatherおよびMyContentに対する表示権限、パーソナライズ権限およびカスタマイズ権限を持つpage-customizerロールが割り当てられています。
Harveyを、「Password」にはwelcomeを入力します(図8-48)。
認証が成功すると、ページの一番上の「Logout」リンクおよび前と同様の複数のページ・ナビゲーション・ボタンを備えたWelcome.jspxが表示されます。
ユーザーHarveyは、表示権限、ポートレットのパーソナライズ権限、およびこのページのカスタマイズ権限を持ちます。これを確認するには、MyJavaPortletのアクション・メニューを調べます。
ユーザーHarveyは、このページ上のコンテンツをカスタマイズまたは移動できます。そしてこれを行うと、すべてのユーザーのページを変更することになります。これは、変更を行うユーザーのみに適用されるパーソナライズとは異なります。先にユーザーChoが行ったポートレット・タイトルのパーソナライズ内容は、ユーザーHarveyには表示されないことに注意してください。
最後は、ユーザーKingとしてログインします。このユーザーにはrestricted-userロールが割り当てられているため、パブリック・コンテンツにしかアクセスできません。このユーザーは、保護されたページ(MyPage、MyWeatherまたはMyContent)を表示できません。
Kingを、「Password」にはwelcomeを入力します(図8-50)。
認証が成功すると、Welcome.jspxは表示されますが、ページ・ナビゲーション・ボタンは表示されません。これは、ユーザーKingにMyPage、MyWeatherまたはMyContentを表示する権限がないためです。
前に、保護されたページに対してログイン認証を強制するセキュリティ制約を定義しました。このため、認証されていないユーザーが保護されたページにアクセスしようとすると、ユーザーは認証のためにログイン・ページにリダイレクトされるはずです。ここで、このことをテストします。
ブラウザが開いてページが表示されると、ターゲットのURLは次のように表示されます。http://123.4.56.789:8988/MySample-ViewController-context-root/faces/
MyPage.jspx
これは保護されたページなので、ログイン・フォームが表示されます。
Harvey/welcomeなど)を入力し、「Login」をクリックします。ユーザーHarveyにはMyPageを表示する権限があるため、ブラウザにMyPageが表示されます。
King/welcomeを入力し、「Login」をクリックします。今度は、「Unauthorized」というメッセージが表示されます。
チュートリアル・アプリケーションのログイン構成の一部として、ログイン・エラー・ページを選択しました。ここで、無効なユーザー資格証明を入力してみて、動作を確認します。空のログイン・ページに戻されるはずです。
今度は、ようこそページは表示されません。認証されていないユーザーには、空白のログイン・フォームが再び表示されます。
ページにアクセス制限を適用すると、そのページ上のすべてのデータ・コントロールへのアクセスが自動的に制限されます。ここでは、MyContent.jpsxに配置したデータ・コントロールについて説明します。
Harvey/welcomeなど)を入力し、「Login」をクリックします。ブラウザにMyContent.jspxが表示されますが、今度はファイル・システム・コンテンツにアクセスできません(図8-51)。
アクセスを認可するには、データ・コントロールの実行可能ファイルおよびバインディングを介して権限を付与する必要があります。これから、それを行います。
データ・コントロールのコンテンツをアクセス可能にするには、コントロールの実行可能ファイル(methodIterator)およびバインディング(methodActionとattributeValues)を介して権限を付与する必要があります。このため、MyContent.jpsx上にヘルプ・リンクを表示する場合は、getURIIter(methodIterator)、getURI(methodAction)およびgetURI_returnURI(attributeValues)の認可設定を編集する必要があります。
同様に、ファイルの表を表示する場合は、getItemsIter(methodIterator)、getItems(methodAction)およびgetItems1(attributeValues)の認可設定を編集する必要があります。また、ツリーおよび検索フォームのデータ・コントロールに対しても同じ手順を行う必要があります。
それでは、表データ・コントロールに対するすべての手順を追って、この方法を確認します。
Harvey/welcomeなどの有効な資格証明を使用してログインします。今度は、表データ・コントロールにファイルがリストされます(図8-56を参照)。
必要に応じて、手順5〜7を繰り返すことにより、MyContent.jspx上の他のデータ・コントロールへのアクセスを有効化することもできます。
おめでとうございます。これでレッスンは完了です。最初のWebCenterアプリケーションが保護されました。最後のレッスンでは、デプロイメントと、Enterprise Manager(管理者がWebCenterアプリケーションをデプロイ、構成および管理できるブラウザベースのツール)の使用方法について学びます。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|