Référentiel Liberty[8.5.5.4 ou ultérieure]

Configuration de la prise en charge de la fonction Java Servlet 3.1 pour la sécurité

Le profil Liberty prend en charge toutes les mises à jour de sécurité tel que défini dans la spécification Java™ Servlet 3.1.

Pourquoi et quand exécuter cette tâche

Bénéficiez de fonctions Java Servlet 3.1 dans le profil Liberty.

Procédure

  1. Ajoutez la fonction servlet-3.1 dans le fichier server.xml :
    <feature>servlet-3.1</feature>
  2. Déterminez parmi les fonctionnalités suivantes de la fonction Java Servlet 3.1 celles que vous voulez utiliser :
    • Indiquez autocomplete=off dans le formulaire de connexion.
      Lorsque vous utilisez HTML pour une page de connexion par formulaire, définissez la zone de passe sur autocomplete="off" afin de désactiver automatiquement le remplissage des mots de passe dans le navigateur Web. Exemple :
      <form method=”POST” action=”j_security_check”>
      <input type=”text” name=”j_username”>
      <input type=”password” name=”j_password” autocomplete=”off”>
      </form>
    • Indiquez la contrainte de sécurité d'authentification complète (**).
      Le nom de rôle spécial ** indique tout utilisateur authentifié. Lorsque ** s'affiche dans une contrainte d'autorisation, si l'utilisateur est authentifié, cela signifie qu'il a accès aux méthodes qui sont indiquées dans la contrainte. Les utilisateurs n'ont pas à être mappés à ce rôle dans les liaisons d'applications. Exemple :
      <security-constraint id="SecurityConstraint_1">
      		<web-resource-collection id="WebResourceCollection_1">
      			<web-resource-name>Protected with ** role</web-resource-name>
      			<url-pattern>/AnyAuthSecurityConstraint</url-pattern>
      			<http-method>GET</http-method>
      			<http-method>POST</http-method>
      		</web-resource-collection>
      		<auth-constraint id="AuthConstraint_1">
      			<role-name>**</role-name>
      		</auth-constraint>
      </security-constraint>

      Lorsque la méthode isUserInRole() est appelée avec un nom de rôle **, isUserInRole() renvoie true si l'utilisateur est authentifié. Si ** est un rôle défini dans la configuration d'un rôle de sécurité, il n'est pas traité comme le rôle utilisateur authentifié spécial. L'utilisateur doit être mappé à ce rôle dans les liaisons d'application afin que isUserInRole renvoie true.

    • Spécifiez l'indicateur deny-uncovered-http-methods dans les fichiers web.xml.
      Si l'élément deny-uncovered-http-methods est spécifié au sein du fichier web.xml, le conteneur refuse les méthodes HTTP non couvertes qui ne sont pas énumérées dans la contrainte de sécurité combinée pour un masque d'URL qui correspond le mieux à l'URL de demande. L'état 403 (SC_FORBIDDEN) est renvoyé. Exemple :
      <servlet-mapping id="ServletMapping_1">
      		<servlet-name>MyServlet</servlet-name>
      		<url-pattern>/MyURLPattern</url-pattern>
      </servlet-mapping>
      
      <deny-uncovered-http-methods/>
      
      <!-- SECURITY CONSTRAINTS -->
      <security-constraint id="SecurityConstraint_1">
      		<web-resource-collection id="WebResourceCollection_1">
      			<web-resource-name>Protected with Employee or Manager roles</web-resource-name>
      			<url-pattern>/MyURLPattern</url-pattern>
      			<http-method>GET</http-method>
      			<http-method>POST</http-method>
      		</web-resource-collection>
      		<auth-constraint id="AuthConstraint_1">
      			<role-name>Employee</role-name>
      			<role-name>Manager</role-name>
      		</auth-constraint>
      </security-constraint>
      Si l'élément deny-uncovered-http-methods est spécifié dans le fichier web.xml, un message est consigné dans le fichier messages.log pour chaque masque d'URL dans chaque servlet, ce qui indique pour les méthodes non couvertes avec une remarque que ces méthodes non couvertes ne sont pas protégées et accessibles. Exemple :
      Pour l'URL
      MyURLPattern dans le servlet MyServlet, les méthodes HTTP
      suivantes ne sont pas couvertes et ne sont pas accessibles : DELETE
      OPTIONS HEAD PUT TRACE
      Si l'élément deny-uncovered-http-methods n'est pas spécifié dans le fichier web.xml, un message est consigné dans le fichier messages.log pour chaque masque d'URL dans chaque servlet, ce qui indique pour les méthodes non couvertes avec une remarque que ces méthodes non couvertes ne sont pas protégées et accessibles. Exemple :
      Pour l'URL MyURLPattern dans le
      servlet MyServlet, les méthodes HTTP suivantes ne sont pas couvertes
      et sont accessibles : DELETE OPTIONS HEAD PUT TRACE

Résultats

Votre application est à présent sécurisée.

Icône indiquant le type de rubrique Rubrique Tâche

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_servlet31
Nom du fichier : twlp_servlet31.html