Sorties d’installation

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 3 minutes de lecture
  • Les sorties d’installation sont des personnalisations qui quittent Java pour appeler un script avant de revenir à Java.

    Remarque :
    Les fonctionnalités décrites ici nécessitent le rôle admin.

    Sorties d’installation disponibles

    Accédez à la Définition du système > Sorties d'installation. Certains noms de sortie d’installation (Login, Logout, ValidatePassword, ExternalAuthentication) sont réservés et ne peuvent pas être modifiés. D’autres sorties d’installation peuvent les remplacer par un script personnalisé qui remplace le script dans la sortie d’installation par défaut.

    Les sorties d’installation suivantes sont disponibles dans le système de base :

    Sortie de l'installation Description
    Connexion Utilise une paire nom d’utilisateur/mot de passe et s’authentifie avec l’objet utilisateur
    Déconnecter Dirige l’utilisateur vers la page d’accueil lors de la déconnexion ; peut être remplacé par LogoutRedirect
    Déconnexion de la redirection Dirige l’utilisateur vers une URL spécifiée lors de la déconnexion
    Authentification externe Authentifie à l’aide d’un en-tête, d’un paramètre ou d’un cookie ; peut être remplacé par DigestSingleSignOn et PGPSingleSignOn
    DigestSingleSignOn S’authentifie à l’aide d’un en-tête, d’un paramètre ou d’un cookie et déchiffre le chiffrement Digest
    PGPSingleSignOn Authentifie à l’aide d’un en-tête, d’un paramètre ou d’un cookie et déchiffre le chiffrement PGP
    Valider le mot de passe Actif par défaut, à partir de la Helsinki version ; permet aux clients de définir leur propre validation de mot de passe ; peut être remplacé par ValidatePasswordStronger
    ValiderPasswordStronger Exige que les mots de passe comportent au moins 8 caractères et contiennent un chiffre, une lettre majuscule et une lettre minuscule
    GetIntegrationSessionTimeout Implémente le comportement de délai d’expiration de session d’intégration par défaut.

    Modifications de connexion

    La modification suivante apportée à la sortie de l’installation de la connexion définit la valeur du délai d’expiration de la session de chaque utilisateur à mesure que l’utilisateur se connecte. Dans cet exemple particulier, si le nom d’utilisateur est administrateur, la session est définie sur le délai d’expiration de 30 secondes.

    gs.include("PrototypeServer");
     
    var Login = Class.create();
    Login.prototype = {
    	initialize : function() {
    	},
     
            process : function() {
              // the request is passed in as a global
              var userName = request.getParameter("user_name");
              var userPassword = request.getParameter("user_password");
     
              var authed = GlideUser.authenticate(userName, userPassword);
              if (authed) {
                 // ***********************************************************        
                 // customization - if the userName == admin, set the session
                 // timeout to be 30 seconds. You can implement your own  
                 // session timeout algorithm here by checking to see if a user
                 // belongs to a certain group or has a certain role.
                 // Values of setMaxInactiveInterval exceeding 1440 minutes are
                 // treated as one day (1440 minutes).
      
               if (userName == "admin") {
                   request.getSession().setMaxInactiveInterval(30);
                 }
                 // ************************************************************
                 return GlideUser.getUser(userName);
              }
     
              this.loginFailed();
     
              return "login.failed";
            },
     
            loginFailed : function() {
              var message = GlideSysMessage.format("login_invalid");
              var gSession = GlideSession.get();
              gSession.addErrorMessage(message);
     
              var userName = request.getParameter("user_name");
              EventManager.queue("login.failed", "", userName, "");
           }
     
    }

    Le délai d’expiration de la session peut également être défini en fonction de l’adresse IP.

    gs.include("PrototypeServer");
     
    var Login = Class.create();
    Login.prototype = {
    	initialize : function() {
    	},
     
            process : function() {
              // the request is passed in as a global
              var userName = request.getParameter("user_name");
              var userPassword = request.getParameter("user_password");
     
              var authed = GlideUser.authenticate(userName, userPassword);
              if (authed) {
     
              // **************************************************************
              // customization - if the user is logging in from a particular IP
              // range starting with XXX.XXX you can implement your own
              // session timeout algorithm here by checking the login IP
              // 
              // Values of setMaxInactiveInterval exceeding 1440 minutes are
              // treated as one day (1440 minutes).
     
              var clientIP = gs.getSession().getClientIP().toString();
    
              // if client IP starts with specified range
              if (clientIP.indexOf('XXX.XXX') == 0) {  
                 // set to 10 hours
                 request.getSession().setMaxInactiveInterval(60 * 60 * 10); 
              }
              // ***************************************************************
     
                 return GlideUser.getUser(userName);
              }
     
              this.loginFailed();
     
              return "login.failed";
            },
     
            loginFailed : function() {
              var message = GlideSysMessage.format("login_invalid");
              var gSession = GlideSession.get();
              gSession.addErrorMessage(message);
     
              var userName = request.getParameter("user_name");
              EventManager.queue("login.failed", "", userName, "");
           }
     
    }