Création d'une page de connexion automatique de client de l'utilisateur externe

Création d'une page de connexion automatique de client de l'utilisateur externe

Certaines applications client d'utilisateur externe ne nécessitent pas d'authentification de l'utilisateur et aucun nom d'utilisateur ni mot passe n'est donc requis. Il est impossible de désactiver l'authentification dansIBM Cúram Social Program Management, aussi le meilleur moyen de satisfaire cette exigence consiste à écrire un script de connexion automatique.

Le script de connexion automatique utilise un nom d'utilisateur codé en dur et un mot de passe et les fournit en tant qu'informations d'authentification si nécessaire. Cela signifie que tous les utilisateurs d'une telle application s'exécutent toujours sous le même nom d'utilisateur. L'utilisation de ce script doit être limitée aux véritables applications d'accès ouvert.

Lors de l'implémentation d'applications nécessitant une connexion automatique, il convient d'envisager les implications de la gestion de session. La gestion de session dans IBM Cúram Social Program Management conserve les informations de session d'un utilisateur pour s'assurer que lorsque l'utilisateur se connecte à nouveau, les informations de session pertinentes, à savoir les onglets et la navigation, s'ouvrent là où il les a laissées. Si un utilisateur s'est connecté automatiquement, ces informations ne doivent pas être conservées, par conséquent la gestion de session peut devoir être désactivée dans ce scénario. Pour plus d'informations sur la désactivation de la gestion de session, consultez le Manuel de référence du client Web Cúram.

Voici des exemples de scripts JSP de connexion et de déconnexion automatiques.

Remarque : Les implémentations et les configurations de sécurité diffèrent entre les fournisseurs de serveurs d'applications, ces exemples risquent donc de ne pas fonctionner dans tous les cas ou pour toutes les versions de serveurs d'applications.
Figure 1. JSP de connexion automatique
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
  xmlns:prefix="URI"
  version="2.0">
  <jsp:directive.page buffer="32kb"
                      contentType="text/html; charset=UTF-8"
                      pageEncoding="UTF-8" />
  <jsp:text>
    <![CDATA[
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">]]>
  </jsp:text>

  <!-- Réacheminement automatique vers la vérification de la sécurité de connexion des
          détails de l'utilisateur indiqués ci-dessous -->

  <html>
    <head>
      <script type="text/javascript">
        function autoSubmit() {
          document.getElementById("loginform").submit();
        }
      </script>
      <meta content="text/html; charset=UTF-8"
            http-equiv="Content-Type" />
    </head>
    <body class="logonBody"
          style="visibility: hidden;"
          onload="autoSubmit()">
      <form id="loginform"
            name="loginform"
            action="j_security_check"
            method="post">
        <input type="hidden"
               name="j_username"
               value="generalpublic" />
        <input type="hidden"
               name="j_password"
               value="password" />
        <input type="hidden"
               name="user_type"
               value="EXTERNE" />
      </form>
    </body>
  </html>
</jsp:root>
Figure 2. JSP de déconnexion automatique
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
  xmlns:prefix="URI"
  version="2.0">
  <jsp:directive.page buffer="32kb"
                      contentType="text/html; charset=UTF-8"
                      pageEncoding="UTF-8" />
  <jsp:text>
    <![CDATA[
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">]]>
  </jsp:text>
  <html>
    <head>
      <script type="text/javascript">
        function autoSubmit() {
          document.getElementById("logout").submit();
        }
      </script>
      <meta content="text/html; charset=UTF-8"
            http-equiv="Content-Type" />
    </head>
    <body class="logoutBody"
          style="visibility: hidden;"
          onload="autoSubmit()">
      <form id="logout"
            name="logout"
            action="servlet/ApplicationController"
            method="post">
        <input type="submit"
               name="j_logout"
               value="Log Out" />
        <input type="hidden"
               name="logoutExitPage"
               value="redirect.jsp" />
      </form>
    </body>
  </html>
</jsp:root>