17.2.9. Utilisation de la sécurité basée-rôle dans les Servlets


Pour ajouter la sécurité à un servlet, vous devez mapper chaque servlet à un type d'URL et créer des contraintes de sécurité sur les types d'URL qui doivent être sécurisés. Les contraintes de sécurité limitent l'accès des URL aux rôles. L'authentification et l'autorisation sont gérées par le domaine de sécurité spécifié dans jboss-web.xml du WAR.
Conditions préalables

Avant d'utiliser la sécurité basée-rôles dans un servlet, le domaine de sécurité utilisé pour authentifier et autoriser l'accès doit être configuré sur la plateforme JBoss EAP 6.

Procédure 17.2. Ajout de la sécurité basée-rôle dans les servlets

  1. Ajout de mappages entre les types d'URL et les servlets.

    Utiliser les éléments <servlet-mapping> du fichier web.xml pour mapper les servlets individuels à des types d'URL. L'exemple suivant mappe le serveur nommé DisplayOpResult au type d'URL /DisplayOpResult.
    Copy to Clipboard Toggle word wrap
    <servlet-mapping>
        <servlet-name>DisplayOpResult</servlet-name>
        <url-pattern>/DisplayOpResult</url-pattern>
    </servlet-mapping>		
    
    
  2. Ajout des contraintes de sécurité aux types d'URL.

    Pour mapper le type d'URL avec une contrainte de sécurité, utilisez un <security-constraint>. L'exemple suivant limite l'accès d'un type d'URL /DisplayOpResult afin qu'il soit accessible aux principaux ayant pour rôle eap_admin. Le rôle doit être présent dans le domaine de sécurité.
    Copy to Clipboard Toggle word wrap
    <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>
    
    
    Vous aurez besoin d'indiquer la méthode d'authentification, qui peut être une des méthodes suivantes : BASIC, FORM, DIGEST, CLIENT-CERT, SPNEGO.. Cet exemple utilise l'authentification BASIC.
  3. Indiquez le domaine de sécurité et le fichier jboss-web.xml du WAR.

    Ajoutez le domaine de sécurité au fichier jboss-Web.xml du WAR afin de connecter les servlets au domaine de la sécurité configuré sachant comment authentifier et autoriser les principaux selon les contraintes de sécurité. L'exemple suivant utilise le domaine de sécurité appelé acme_domain.
    Copy to Clipboard Toggle word wrap
    <jboss-web>
    	...
    	<security-domain>acme_domain</security-domain>
    	...
    </jboss-web>
    
    

Exemple 17.1. Exemple web.xml avec la sécurité basée rôle configurée.

Copy to Clipboard Toggle word wrap
<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>
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat, Inc.