NetBeans IDEでのWebアプリケーションのセキュリティ保護

このドキュメントでは、Oracle GlassFish Open Source Edition、Oracle WebLogicまたはApache TomcatサーバーにデプロイされるWebアプリケーションにセキュリティを追加する基本的な手順を学ぶことができます。

このドキュメントでは、基本的なログイン・ウィンドウとWebページのログイン・フォームを使用してセキュリティ認証を構成する方法を説明します。このドキュメントでは、TomcatサーバーおよびGlassFishサーバーでユーザーを作成する手順を学習できます。ユーザーを作成した後、デプロイメント・ディスクリプタでセキュリティ・プロパティを設定してセキュリティ・ロールを作成します。このドキュメントでは、GlassFishサーバーにデプロイするときに、JDBC認証を使用してアプリケーションのセキュリティ保護を行う方法も説明します。

予測される所要時間: 40

目次

このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE Java EEバージョン
Java Developer Kit (JDK) バージョン7または8
Java EEプラットフォーム Java EE 6または7
Travelデータベース オプション
Java EE互換のWebサーバーまたはアプリケーション・サーバー Tomcat Webサーバー7.xまたは8.x、Oracle WebLogic 11g、または
GlassFish Server Open Source Edition 4.x

作業環境のインストールと構成

NetBeans IDEをインストールし、起動します。このチュートリアルは、バンドルされたTomcatサーバーまたはGlassFishサーバーを使用して実行できます。

サーバーがインストールされ、サーバー・インスタンスがIDEに登録されていることを確認します。サーバー・マネージャを使用して、インストール済のサーバー・インスタンスを登録できます。(「ツール」>「サーバー」>「サーバーを追加」を選択します。「GlassFish Server <バージョン番号>」または「Tomcat <バージョン番号>」を選択し、「次」をクリックします。「参照」をクリックし、アプリケーション・サーバーのインストール・ディレクトリを探します。「終了」をクリックします。)

Webアプリケーションの作成

この課題では、まずWebアプリケーション・プロジェクトとディレクトリ構造を作成します。次に、セキュリティ保護された各ディレクトリで、単純なhtmlファイルをいくつか作成します。Webアプリケーションは、セキュリティ保護されたディレクトリへのアクセスに、基本的なログイン認証を使用します。認証にログイン・フォームを使用する場合は、フォームがあるjspページを追加できます。

セキュリティ保護されたディレクトリの作成

  1. 「ファイル」>「新規プロジェクト」([Ctrl]-[Shift]-[N])を選択し、「Java Web」カテゴリから「Webアプリケーション」を選択して「次」をクリックします。
  2. プロジェクトにWebApplicationSecurityという名前を付けます。デフォルトの設定を受け入れます。
  3. (オプション)「ライブラリの格納用に専用フォルダを使用」チェックボックスを選択し、ライブラリ・フォルダの場所を指定します。このオプションの詳細は、NetBeans IDEによるアプリケーションの開発他のユーザーとのライブラリの共有を参照してください。
  4. 「次」をクリックします。
  5. アプリケーションをデプロイするサーバーを選択します。表示されるのは、IDEに登録されているサーバーのみです。「次」をクリックします。
  6. フレームワークを追加する必要はないので、「終了」をクリックします。
  7. EE 6アプリケーションを作成した場合は、IDEの「プロジェクト」ウィンドウに移動してプロジェクトのノードを右クリックし、「新規」>「その他」>「Web」>「標準のデプロイメント・ディスクリプタ(web.xml)」を選択します。デフォルト設定をすべて受け入れてクリックしてウィザードを進めます。

    注意: このチュートリアルではデプロイメント・ディスクリプタでセキュリティを構成する方法を示しますが、EE 6およびEE 7アプリケーションはデフォルトでデプロイメント・ディスクリプタのかわりに注釈を使用します。

  8. GlassFishまたはWebLogicサーバーとNetBeans IDE 7.0.1以降を使用している場合は、サーバー固有のディスクリプタを生成する必要があります。プロジェクトのノードを右クリックし、「新規」>「その他」>「GlassFish」>「GlassFishディスクリプタ」または「新規」>「その他」>「WebLogic」>「WebLogicディスクリプタ」を選択します。「サーバー固有のディスクリプタを作成」ダイアログが開きます。デフォルトをすべて受け入れ、「終了」をクリックします。glassfish-web.xmlまたはweblogic.xmlという名前の、サーバー固有のディスクリプタが、プロジェクトの「構成ファイル」フォルダに表示されます。
  9. IDEの「プロジェクト」ウィンドウで「Webページ」を右クリックし、「新規」>「その他」を選択します。
  10. 新規ファイル・ウィザードで、「カテゴリ」に「その他」を選択し、「ファイル・タイプ」に「フォルダ」を選択します。「次」をクリックします。
  11. 新規フォルダ・ウィザードでフォルダに「secureAdmin」という名前を付け、「終了」をクリックします。

    「プロジェクト」ウィンドウの「Webページ」フォルダに、secureAdminフォルダが表示されます。
  12. 前の3つの手順を繰り返して、secureUserという名前の別のフォルダを作成します。
  13. 「プロジェクト」ウィンドウで、secureUserフォルダを右クリックして「新規」>「その他」を選択し、secureUserフォルダ内に新しいhtmlファイルを作成します。
  14. 「その他」カテゴリで「HTML」ファイル・タイプを選択します。「次」をクリックします。
  15. 新しいファイルにpageUという名前を付け、「終了」をクリックします。

    「終了」をクリックすると、ソース・エディタでファイルpageU.htmlが開きます。

  16. ソース・エディタで、pageU.html内の既存コードを次のコードに置き換えます。
    <html>
       <head>
          <title>User secure area</title>
       </head>
       <body>
          <h1>User Secure Area</h1>
       </body>
    </html>
  17. secureAdminフォルダを右クリックし、pageAという名前の新しいhtmlファイルを作成します。
  18. ソース・エディタで、pageA.html内の既存コードを次のコードに置き換えます。
    <html>
       <head>
          <title>Admin secure area</title>
       </head>
       <body>
          <h1>Admin secure area</h1>
       </body>
    </html>

JSPのインデックス・ページの作成

セキュリティ保護された領域へのリンクを含むJSPのインデックス・ページを作成します。ユーザーがリンクをクリックすると、ユーザー名とパスワードの入力が求められます。基本的なログインを使用している場合は、デフォルト・ブラウザのログイン・ウィンドウが表示されます。ログイン・フォーム・ページを使用する場合、ユーザーはフォームにユーザー名とパスワードを入力します。

  1. ソース・エディタでindex.jspを開き、次のpageA.htmlおよびpageU.htmlへのリンクを追加します。
    <p>Request a secure Admin page <a href="secureAdmin/pageA.html">here!</a></p>
    <p>Request a secure User page <a href="secureUser/pageU.html" >here!</a></p>
  2. 変更を保存します。

ログイン・フォームの作成(Tomcatでは必須、GlassFishまたはWebLogicサーバーではオプション)

基本的なログインのかわりにログイン・フォームを使用する場合、フォームを含むjspページを作成できます。ログイン方法を構成するときに、ログイン・ページとエラー・ページを指定します。

重要: Tomcatユーザーはログイン・フォームを作成する必要があります。

  1. 「プロジェクト」ウィンドウで「Webページ」フォルダを右クリックし、「新規」>「JSP」を選択します。
  2. ファイルにloginという名前を付け、その他のフィールドはデフォルトの値のままにし、「終了」をクリックします。
  3. ソース・エディタで、login.jsp<body>タグの間に次のコードを挿入します。
    <form action="j_security_check" method="POST">
       Username:<input type="text" name="j_username"><br>
       Password:<input type="password" name="j_password">
       <input type="submit" value="Login">
    </form>
  4. loginError.htmlという名前の新しいhtmlファイルを「Webページ」フォルダに作成します。これは、単純なエラー・ページです。
  5. ソース・エディタで、loginError.html内の既存コードを次のコードに置き換えます。
    <html>
        <head>
            <title>Login Test: Error logging in</title>
        </head>
        <body>
            <h1>Error Logging In</h1>
            <br/>
        </body>
    </html>

ターゲット・サーバーでのユーザーの作成

Webアプリケーションで、基本的なログインまたはフォームに基づくログインのユーザーおよびパスワードの認証セキュリティを使用できるようにするには、ユーザーとその適切なロールがターゲット・サーバーに対して定義されている必要があります。サーバーにログインするには、そのサーバーにユーザー・アカウントが存在している必要があります。

ユーザーとロールの定義方法は、指定したターゲット・サーバーに応じて異なります。このチュートリアルでは、セキュリティの設定をテストするために、adminユーザーとuserユーザーを使用します。これらのユーザーがそれぞれのサーバーに存在し、適切なロールがユーザーに割り当てられていることを確認する必要があります。

GlassFish Serverでのユーザーの定義

このシナリオでは、GlassFishサーバーの管理コンソールを使用して、useradminという名前の2つの新しいユーザーを作成する必要があります。userという名前のユーザーにはアプリケーションへのアクセス権を制限し、adminには管理権限を付与します。

  1. IDEの「サービス」ウィンドウに移動して「サーバー」>「GlassFish Server」を右クリックし、「ドメイン管理コンソールの表示」を選択して管理コンソールを開きます。GlassFishサーバーのログイン・ページがブラウザ・ウィンドウで開きます。管理コンソールにアクセスするには、adminのユーザー名とパスワードを使用してログインする必要があります。

    注意: 管理コンソールにアクセスする前に、Application Serverを起動している必要があります。サーバーを起動するには、GlassFishサーバーのノードを右クリックし、「起動」を選択します。

  2. 管理コンソールで、「構成」>「server-config」>「セキュリティ」>「レルム」>「file」の順に展開します。「レルムを編集」パネルが開きます。
    GlassFish 3.1管理コンソールのserver-configのfileレルム
  3. 「レルムを編集」パネルの上部にある「ユーザーを管理」ボタンをクリックします。「ファイル・ユーザー」パネルが開きます。
    「新規」ユーザー・ボタンが強調表示された「ファイル・ユーザー」パネル
  4. 「新規」をクリックします。新規ファイル・レルム・ユーザー・パネルが開きます。「ユーザーID」に「user」、パスワードに「userpw01」と入力します。「OK」をクリックします。
  5. 前の手順に従って、名前がadmin、パスワードがadminpw1のユーザーをfileレルムに作成します。

Tomcat Webサーバーでのロールとユーザーの定義

Tomcat 7では、サーバーをNetBeans IDEに登録するときに、manager-scriptロールのユーザーとそのユーザーのパスワードを作成します。

Tomcatサーバーの基本的なユーザーとロールは、tomcat-users.xmlに記述されています。tomcat-users.xmlは、<CATALINA_BASE>\confディレクトリにあります。

注意: CATALINA_BASEの場所は、「サービス」ウィンドウでTomcatサーバーのノードを右クリックし、「プロパティ」を選択して調べることができます。サーバーのプロパティが表示されます。CATALINA_BASEの場所は「接続」タブに示されます。

Tomcat 7.0のプロパティを開くコンテキスト・メニューが表示された「サービス」ウィンドウ CATALINA_BASEの場所が表示されたTomcat 7サーバーの「プロパティ」ダイアログ

注意: 以前のバージョンのIDEにバンドルされていたTomcat 6を使用する場合、このサーバーに存在するideユーザーには、パスワードと、管理者およびマネージャのロールが定義されています。ユーザーideのパスワードは、Tomcat 6がインストールされるときに生成されます。ユーザーideのパスワードは変更できます。つまり、tomcat-users.xmlにパスワードをコピーできます。

ユーザーをTomcatに追加するには:

  1. <CATALINA_BASE>/conf/tomcat-users.xmlをエディタで開きます。
  2. AdminRoleという名前のロールを追加します。
    <role rolename="AdminRole"/>
  3. UserRoleという名前のロールを追加します。
    <role rolename="UserRole"/>
  4. 名前がadmin、パスワードがadminpw1、ロールがAdminRoleのユーザーを追加します。
    <user username="admin" password="adminpw1" roles="AdminRole"/>
  5. 名前がuser、パスワードがuserpw01、ロールがUserRoleのユーザーを追加します。
    <user username="user" password="userpw01" roles="UserRole"/>

tomcat-users.xmlファイルは次のようになります。

<tomcat-users>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->
...
<role rolename="AdminRole"/>
<role rolename="UserRole"/>
<user username="user" password="userpw01" roles="UserRole"/>
<user username="admin" password="adminpw1" roles="AdminRole"/>
[User with manager-script role, defined when Tomcat 7 was registered with the IDE]
...
</tomcat-users>

WebLogicサーバーでのユーザーとグループの定義

このシナリオでは、まずWebLogicサーバーの管理コンソールを使用して、useradminという名前の2つの新しいユーザーを作成する必要があります。これらのユーザーを、それぞれuserGroupグループとadminGroupグループに追加します。後で、これらのグループにセキュリティ・ロールを割り当てます。userGroupにはアプリケーションへのアクセス権を制限し、adminGroupには管理権限を付与します。

WebLogicサーバーにユーザーとグループを追加する一般的な手順については、WebLogic管理コンソール・オンライン・ヘルプを参照してください。

「user」および「admin」のユーザーとグループをWebLogicに追加するには:

  1. IDEの「サービス」ウィンドウに移動して「サーバー」>「WebLogic Server」を右クリックし、「管理コンソールを表示」を選択して管理コンソールを開きます。GlassFishサーバーのログイン・ページがブラウザ・ウィンドウで開きます。管理コンソールにアクセスするには、adminのユーザー名とパスワードを使用してログインする必要があります。

    注意: 管理コンソールにアクセスする前に、Application Serverを起動している必要があります。サーバーを起動するには、WebLogicサーバーのノードを右クリックし、「起動」を選択します。

  2. 左ペインで、「セキュリティ・レルム」を選択します。セキュリティ・レルムのサマリー・ページが開きます。
  3. セキュリティ・レルムのサマリー・ページで、レルムの名前を選択します(デフォルト・レルムは「myrealm」)。レルム名の設定ページが開きます。
  4. レルム名の設定ページで、「ユーザー」を選択し、「グループ」>「ユーザー」を選択します。「ユーザー」表が表示されます。
  5. 「ユーザー」表で「新規」をクリックします。新規ユーザーを作成ページが開きます。
  6. 名前に「user」、パスワードに「userpw01」と入力します。必要に応じて、説明を入力します。デフォルトの認証プロバイダを受け入れます。
    新規ユーザー・ダイアログが表示されたWebLogic管理コンソール
  7. 「OK」をクリックします。「ユーザー」表に戻ります。
  8. 「新規」をクリックし、名前が「admin」、パスワードが「admin1」のユーザーを追加します。
  9. 「グループ」タブを開きます。「グループ」表が表示されます。
  10. 「新規」をクリックします。「新規グループを作成」ウィンドウが開きます。
  11. グループにuserGroupという名前を付けます。デフォルトのプロバイダを受け入れ、「OK」をクリックします。「グループ」表に戻ります。
  12. 「新規」をクリックし、adminGroupというグループを作成します。
  13. 次の手順のために「ユーザー」タブを開きます。

次に、adminユーザーをadminGroupuserユーザーをuserGroupに追加します。

ユーザーをグループに追加するには:

  1. 「ユーザー」タブでadminユーザーをクリックします。ユーザーの設定ページが開きます。
  2. 設定ページで「グループ」タブを開きます。
  3. 「親グループ:」「使用可能:」表で、adminGroupを選択します。
  4. 右矢印(>)をクリックします。「親グループ: 選択:」表にadminGroupが表示されます。
    adminユーザーの設定を示すWebLogic管理コンソール
  5. 「保存」をクリックします。
  6. 「ユーザー」タブに戻ります。
  7. userユーザーをクリックし、userGroupに追加します。

ログイン方法の構成

アプリケーションのログイン方法を構成するには、基本的なログイン認証用のブラウザによって提供されるログイン・ウィンドウを使用できます。または、ログイン・フォームがあるWebページを作成できます。両方のタイプのログイン構成は、ユーザーおよびパスワードによる認証に基づいています。

ログインを構成するには、セキュリティ制約を作成し、ロールをこれらのセキュリティ制約に割り当てます。セキュリティ制約では一連のファイルを定義します。ロールを制約に割り当てると、そのロールを持つユーザーは、制約によって定義された一連のファイルにアクセスできるようになります。たとえば、このチュートリアルでは、AdminRoleをAdminConstraintに、UserRoleとAdminRoleをUserConstraintに割り当てます。これは、AdminRoleを持つユーザーはAdminファイルとUserファイルの両方にアクセスでき、UserRoleを持つユーザーはUserファイルのみにアクセスできることを意味します。

注意: ユーザー・ファイルに個別の管理者ロール・アクセス権を割り当てることは、一般的な使用方法ではありません。別の方法としては、UserRoleのみをUserConstraintに割り当て、サーバー側で、管理者でもある特定の*users*にAdminRoleを付与します。アクセス権をどのように付与するかは、個々の場合に応じて決定してください。

web.xmlを構成することによって、アプリケーションのログイン方法を構成できます。web.xmlファイルは、「プロジェクト」ウィンドウの「構成ファイル」ディレクトリにあります。

基本的なログイン

基本的なログイン構成を使用する場合は、ログイン・ウィンドウがブラウザに表示されます。セキュリティ保護されたコンテンツにアクセスするには、有効なユーザー名とパスワードが必要です。

次の手順は、GlassFishサーバーとWebLogicサーバーの基本的なログインの構成方法を示します。Tomcatユーザーはフォームによるログインを使用する必要があります。

基本的なログインを構成するには:

  1. 「プロジェクト」ウィンドウで、プロジェクトの「構成ファイル」ノードを展開し、web.xmlをダブルクリックします。ビジュアル・エディタでweb.xmlファイルが開きます。
  2. ツールバーの「セキュリティ」をクリックし、セキュリティ・ビューでファイルを開きます。
  3. 「ログイン構成」ノードを展開し、「ログイン構成」を「基本」に設定します。

    注意: フォームを使用する場合は、「基本」のかわりに「フォーム」を選択し、ログイン・ページおよびログイン・エラー・ページを指定します。

  4. サーバーに応じたレルム名を入力します。
    • GlassFish: 「レルム名」に「file」と入力します。これは、GlassFishサーバーでユーザーを作成した場所のデフォルト・レルム名です。
    • Tomcat: レルム名は入力しないでください。
    • WebLogic: 自分のレルム名を入力します。デフォルト・レルムはmyrealmです。
    web.xmlへの基本ログインとロールの追加
  5. 「セキュリティ・ロール」ノードを展開し、「追加」をクリックしてロール名を追加します。
  6. 次のセキュリティ・ロールを追加します。
    • AdminRole。このロールに追加したユーザーは、サーバーのsecureAdminディレクトリへのアクセス権を持ちます。
    • UserRole。このロールに追加したユーザーは、サーバーのsecureUserディレクトリへのアクセス権を持ちます。

    注意: GlassFishのロール名は先頭が大文字である必要があります。

  7. 次の手順に従って、AdminConstraintという名前のセキュリティ制約を作成および構成します。
    1. 「セキュリティ制約を追加」をクリックします。新しいセキュリティ制約のセクションが表示されます。
    2. 新しいセキュリティ制約の「表示名」に「AdminConstraint」と入力します。
      AdminConstraintの追加
    3. 「追加」をクリックします。「Webリソースを追加」ダイアログが開きます。
    4. 「Webリソースを追加」ダイアログで「リソース名」に「Admin」、「URLパターン」に「/secureAdmin/*」を設定し、「OK」をクリックします。ダイアログが閉じます。

      注意: アスタリスク(*)を使用すると、そのフォルダにあるすべてのファイルに対するユーザー・アクセス権を与えることになります。

      「Webリソースを追加」ダイアログ・ボックス
    5. 「認証制約を有効にする」を選択し、「編集」をクリックします。「ロール名を編集」ダイアログが開きます。
    6. 「ロール名を編集」ダイアログ・ボックスで左ペインの「AdminRole」を選択して「追加」をクリックし、「OK」をクリックします。

      前述の手順を完了すると、次の図に示すような結果になるはずです。

      AdminおよびUserの制約
  8. 次の手順に従って、UserConstraintという名前のセキュリティ制約を作成および構成します。
    1. 「セキュリティ制約を追加」をクリックして新しいセキュリティ制約を作成します。
    2. 新しいセキュリティ制約の「表示名」に「UserConstraint」と入力します。
    3. 「追加」をクリックしてWebリソース・コレクションを追加します。
    4. 「Webリソースを追加」ダイアログ・ボックスで「リソース名」に「User」、「URLパターン」に「/secureUser/*」を設定し、「OK」をクリックします。
    5. 「認証制約を有効にする」を選択して「編集」をクリックし、「ロール名」フィールドを編集します。
    6. 「ロール名を編集」ダイアログ・ボックスで左ペインの「AdminRole」および「UserRole」を選択して「追加」をクリックし、「OK」をクリックします。
    注意: web.xmlでセッションのタイム・アウトも設定できます。タイム・アウトを設定するには、ビジュアル・エディタの「一般」タブをクリックし、セッションの持続時間を指定します。デフォルトは30分です。

    フォームによるログイン

    ログイン用のフォームを使用すると、ログイン・ページおよびエラー・ページの内容をカスタマイズできます。フォームを使用して認証を構成する手順は、作成したログイン・ページおよびエラー・ページを指定する以外は基本的なログイン構成と同じです。

    次の手順は、ログイン・フォームを構成する方法を示しています

    1. 「プロジェクト」ウィンドウで「Webページ/WEB-INF」ディレクトリにあるweb.xmlをダブルクリックし、ビジュアル・エディタでファイルを開きます。
    2. ツールバーの「セキュリティ」をクリックし、セキュリティ・ビューでファイルを開き、「ログイン構成」ノードを展開します。
    3. 「ログイン構成」を「フォーム」に設定します。
    4. 「参照」をクリックしてlogin.jspを検索し、フォームのログイン・ページを設定します。
    5. 「参照」をクリックしてloginError.htmlを検索し、フォームのエラー・ページを設定します。

      web.xmlでのログイン・フォームの設定
    6. サーバーに応じたレルム名を入力します。
      • GlassFish: 「レルム名」に「file」と入力します。これは、GlassFishサーバーでユーザーを作成した場所のデフォルト・レルム名です。
      • Tomcat: レルム名は入力しないでください。
      • WebLogic: 自分のレルム名を入力します。デフォルト・レルムはmyrealmです。
    7. 「セキュリティ・ロール」ノードを展開し、「追加」をクリックしてロール名を追加します。
    8. 次のセキュリティ・ロールを追加します。
      サーバー・ロール 説明
      AdminRole このロールに追加したユーザーは、サーバーのsecureAdminディレクトリへのアクセス権を持ちます。
      UserRole このロールに追加したユーザーは、サーバーのsecureUserディレクトリへのアクセス権を持ちます。
    9. 次の手順に従って、AdminConstraintという名前のセキュリティ制約を作成および構成します。
      1. 「セキュリティ制約を追加」をクリックして新しいセキュリティ制約を作成します。
      2. 新しいセキュリティ制約の「表示名」に「AdminConstraint」と入力します。
      3. 「追加」をクリックしてWebリソース・コレクションを追加します。
      4. 「Webリソースを追加」ダイアログ・ボックスで「リソース名」に「Admin」、「URLパターン」に「/secureAdmin/*」を設定し、「OK」をクリックします。

        注意: アスタリスク(*)を使用すると、そのフォルダにあるすべてのファイルに対するユーザー・アクセス権を与えることになります。

        「Webリソースを追加」ダイアログ・ボックス
      5. 「認証制約を有効にする」を選択し、「編集」をクリックします。「ロール名を編集」ダイアログが開きます。
      6. 「ロール名を編集」ダイアログ・ボックスで左ペインの「AdminRole」を選択して「追加」をクリックし、「OK」をクリックします。

        前述の手順を完了すると、次の図に示すような結果になるはずです。

        AdminおよびUserの制約
    10. 次の手順に従って、UserConstraintという名前のセキュリティ制約を作成および構成します。
      1. 「セキュリティ制約を追加」をクリックして新しいセキュリティ制約を作成します。
      2. 新しいセキュリティ制約の「表示名」に「UserConstraint」と入力します。
      3. 「追加」をクリックしてWebリソース・コレクションを追加します。
      4. 「Webリソースを追加」ダイアログ・ボックスで「リソース名」に「User」、「URLパターン」に「/secureUser/*」を設定し、「OK」をクリックします。
      5. 「認証制約を有効にする」を選択して「編集」をクリックし、「ロール名」フィールドを編集します。
      6. 「ロール名を編集」ダイアログ・ボックスで左ペインの「AdminRole」および「UserRole」を選択して「追加」をクリックし、「OK」をクリックします。
      注意: web.xmlでセッションのタイム・アウトも設定できます。タイム・アウトを設定するには、ビジュアル・エディタの「一般」タブをクリックし、セッションの持続時間を指定します。デフォルトは30分です。

サーバーのデプロイメント・ディスクリプタの構成

アプリケーションをGlassFishサーバーまたはWebLogicサーバーにデプロイメントする場合、web.xmlに定義されたセキュリティ・ロールをマッピングするため、サーバーのデプロイメント・ディスクリプタを構成する必要があります。サーバーのデプロイメント・ディスクリプタは、「プロジェクト」ウィンドウのプロジェクトの「構成ファイル」ノードの下に表示されます。

GlassFish Serverのデプロイメント・ディスクリプタの構成

GlassFishサーバーのデプロイメント・ディスクリプタの名前はglassfish-web.xmlです。サーバーのデプロイメント・ディスクリプタは「構成ファイル」フォルダにあります。そこにない場合は、プロジェクトのノードを右クリックし、「新規」>「その他」>「GlassFish」>「GlassFishデプロイメント・ディスクリプタ」に移動して作成します。すべてのデフォルトを受け入れます。

web.xmlに入力した値は、glassfish-web.xmlに表示されます。IDEはこれらの値をweb.xmlから取得します。

GlassFishデプロイメント・ディスクリプタを構成するには:

  1. 「プロジェクト」ウィンドウで、プロジェクトの「構成ファイル」ノードを展開し、glassfish-web.xmlをダブルクリックします。GlassFishデプロイメント・ディスクリプタ用の特別なタブ付きエディタでglassfish-web.xmlデプロイメント・ディスクリプタが開きます。

    注意: 3.1よりも古いバージョンのGlassFishサーバーでは、このファイルの名前はsun-web.xmlです。

  2. 「セキュリティ」タブを選択し、セキュリティ・ロールを表示します。
  3. AdminRoleのセキュリティ・ロール・ノードを選択し、「セキュリティ・ロールのマッピング」ペインを開きます。
  4. 「プリンシパルの追加」をクリックし、「プリンシパル名」に「admin」と入力します。「OK」をクリックします。

    「プリンシパルの追加」ダイアログ・ボックス
  5. UserRoleのセキュリティ・ロール・ノードを選択し、「セキュリティ・ロールのマッピング」ペインを開きます。
  6. 「プリンシパルの追加」をクリックし、「プリンシパル名」に「user」と入力します。「OK」をクリックします。
  7. glassfish-web.xmlに変更を保存します。

「XML」タブをクリックして、XMLエディタでglassfish-web.xmlを表示および編集することもできます。XMLエディタでglassfish-web.xmlを開くと、glassfish-web.xmlに次のセキュリティ・ロールのマッピング情報があることがわかります。

<security-role-mapping>
    <role-name>AdminRole</role-name>
    <principal-name>admin</principal-name>
</security-role-mapping>
<security-role-mapping>
    <role-name>UserRole</role-name>
    <principal-name>user</principal-name>
</security-role-mapping>

WebLogicサーバーのデプロイメント・ディスクリプタの構成

WebLogicデプロイメント・ディスクリプタの名前はweblogic.xmlです。現在、IDEのGlassFishデプロイメント・ディスクリプタのサポートは、WebLogicデプロイメント・ディスクリプタまで拡張されていません。したがって、weblogic.xmlの変更はすべて手動で行う必要があります。

WebLogicサーバーのデプロイメント・ディスクリプタは「構成ファイル」フォルダにあります。そこにない場合は、プロジェクトのノードを右クリックし、「新規」>「その他」>「WebLogic」>「WebLogicデプロイメント・ディスクリプタ」に移動して作成します。すべてのデフォルトを受け入れます。

注意: 宣言やプログラムによるセキュリティなど、WebLogicでのWebアプリケーションのセキュリティ保護に関する詳細は、Oracle Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミングを参照してください。

WebLogicデプロイメント・ディスクリプタを構成するには:

  1. 「プロジェクト」ウィンドウで、プロジェクトの「構成ファイル」ノードを展開し、weblogic.xmlをダブルクリックします。weblogic.xmlデプロイメント・ディスクリプタがエディタで開きます。
  2. <weblogic-web-app>要素の内部に、次のセキュリティ・ロール割当て要素を入力または貼り付けます。
    <security-role-assignment>
        <role-name>AdminRole</role-name>
        <principal-name>adminGroup</principal-name>
    </security-role-assignment>
    <security-role-assignment>
        <role-name>UserRole</role-name>
        <principal-name>userGroup</principal-name>
    </security-role-assignment>
  3. weblogic.xmlに変更を保存します。

アプリケーションのデプロイと実行

「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、「実行」を選択します。

注意: プロジェクトはデフォルトで「保存時にコンパイル」機能が有効になっている状態で作成されているので、アプリケーションをIDEで実行するときに先にコードをコンパイルする必要はありません。保存時にコンパイル機能の詳細は、NetBeans IDEによるアプリケーションの開発ユーザー・ガイドJavaプロジェクトのビルドを参照してください。

アプリケーションをサーバーにビルドおよびデプロイした後、Webブラウザで開始ページが開きます。adminまたはuserのいずれかをクリックして、アクセスするセキュリティ保護された領域を選択します。

デプロイされたアプリケーション1

ユーザーとパスワードを入力した後、考えられる結果は次の3つです。

  • このユーザーのパスワードが正しく、ユーザーがセキュリティ保護されたコンテンツに対する権限を持っている場合、セキュリティ保護されたコンテンツ・ページが表示されます。

    ユーザーのセキュリティ保護された領域
  • このユーザーのパスワードが間違っている場合、エラー・ページが表示されます。

    ログイン・エラー・ページ
  • このユーザーのパスワードは正しいが、ユーザーがセキュリティ保護されたコンテンツへのアクセス権を持っていない場合、ブラウザには、リクエストされたリソースへのアクセスが拒否されたことを示すエラー403が表示されます。

    アクセスの拒否

サマリー

このチュートリアルでは、セキュリティ保護されたWebアプリケーションを作成しました。web.xmlディスクリプタとglassfish-web.xmlディスクリプタのエディタを使用してセキュリティの設定を編集し、セキュリティ保護されたログインと複数のIDを持つWebページを作成しました。


関連項目






get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo