検索

18.2.9. サーブレットでロールベースのセキュリティーを使用する

download PDF
サーブレットにセキュリティーを追加するには、各サーブレットを URL パターンにマップし、セキュリティーで保護する必要のある URL パターンにセキュリティー制約を作成します。セキュリティー上の制約により、URL へのアクセスがロールに制限されます。認証と承認は、WAR の jboss-web.xml で指定されたセキュリティードメインによって処理されます。

前提条件

サーブレットでロールベースのセキュリティーを使用する前に、アクセスの認証と承認に使用されるセキュリティードメインを JBoss EAP 6 コンテナーで設定する必要があります。

手順18.3 サーブレットにロールベースのセキュリティーを追加する

  1. サーブレットと URL パターンの間にマッピングを追加します。

    web.xml<servlet-mapping> 要素を使用して、個々のサーブレットを URL パターンにマップします。次の例では、DisplayOpResult というサーブレットを URL パターン /DisplayOpResult にマップします。
    <servlet-mapping>
        <servlet-name>DisplayOpResult</servlet-name>
        <url-pattern>/DisplayOpResult</url-pattern>
    </servlet-mapping>		
    
    
  2. URL パターンにセキュリティー制約を追加します。

    URL パターンをセキュリティー制約にマップするには、<security-constraint> を使用します。次の例では、URL パターン /DisplayOpResult からのアクセスを、ロール eap_admin のプリンシパルがアクセスするように制限しています。ロールはセキュリティードメインに存在する必要があります。
    <security-constraint>
    	<display-name>Restrict access to role eap_admin</display-name>
    	<web-resource-collection>
    		<web-resource-name>Restrict access to role eap_admin</web-resource-name>
    		<url-pattern>/DisplayOpResult/*</url-pattern>
    	</web-resource-collection>
    	<auth-constraint>
    		<role-name>eap_admin</role-name>
    	</auth-constraint>	
    </security-constraint>	
    
    <security-role>
      <role-name>eap_admin</role-name>
    </security-role>
    
    
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>
    
    
    認証方法を指定する必要があります。これは、BASIC、FORM、DIGEST、CLIENT-CERT、SPNEGO のいずれかになります。この例では、BASIC 認証を使用しています。
  3. WAR の jboss-web.xml でセキュリティードメインを指定します

    サーブレットを設定済みのセキュリティードメインに接続するために、セキュリティードメインを WAR の jboss-web.xml に追加します。これは、セキュリティー制約に対してプリンシパルを認証および承認する方法を知っています。次の例では、acme_domain というセキュリティードメインを使用しています。
    <jboss-web>
    	...
    	<security-domain>acme_domain</security-domain>
    	...
    </jboss-web>
    
    

例18.1 ロールベースのセキュリティーが設定された web.xml の例

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

<display-name>Use Role-Based Security In Servlets</display-name>

<welcome-file-list>
  <welcome-file>/index.jsp</welcome-file>
</welcome-file-list>

<servlet-mapping>
    <servlet-name>DisplayOpResult</servlet-name>
    <url-pattern>/DisplayOpResult</url-pattern>
</servlet-mapping>

<security-constraint>
  <display-name>Restrict access to role eap_admin</display-name>
    <web-resource-collection>
      <web-resource-name>Restrict access to role eap_admin</web-resource-name>
      <url-pattern>/DisplayOpResult/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <role-name>eap_admin</role-name>
      </auth-constraint>
    </security-constraint>

    <security-role>
      <role-name>eap_admin</role-name>
    </security-role>

    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>

</web-app>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.