Saídas de instalação

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • Saídas de instalação são personalizações que saem do Java para chamar um script antes de retornar ao Java.

    Nota:
    A funcionalidade descrita aqui requer a função de administrador.

    Saídas de instalação disponíveis

    Navegar até Definição do Sistema > Saídas de Instalação. Alguns nomes de saída da instalação (Login, Logout, ValidatePassword, ExternalAuthentication) são reservados e não podem ser alterados. Outras saídas de instalação podem substituí-las por um script personalizado que substitui o script na saída de instalação padrão.

    As seguintes saídas de instalação estão disponíveis no sistema de base:

    Saída de instalação Descrição
    Login Usa um par de nome de usuário e senha e autentica com o objeto de usuário
    Logout Conduz o usuário à página de boas-vindas ao fazer o logout; pode ser substituído por LogoutRedirect
    LogoutRedirect Leva o usuário a um URL especificado após o logout
    ExternalAuthentication Autentica usando cabeçalho, parâmetro ou cookie; pode ser substituída por DigestSingleSignOn e PGPSingleSignOn
    DigestSingleSignOn Autentica usando cabeçalho, parâmetro ou cookie e descriptografa a codificação Digest
    PGPSingleSignOn Autentica usando cabeçalho, parâmetro ou cookie e descriptografa a codificação PGP
    ValidatePassword Ativa por padrão, começando com a versão Helsinki; permite que os clientes definam sua própria validação de senha; pode ser substituída por ValidatePasswordStronger
    ValidatePasswordStronger A senha deve ter pelo menos 8 caracteres e conter um dígito, uma letra maiúscula e uma letra minúscula.
    GetIntegrationSessionTimeout Implementa o comportamento de tempo limite da sessão de integração padrão.

    Modificações de login

    A modificação a seguir da saída de instalação de Login define o valor de tempo limite de cada sessão do usuário conforme o usuário faz login. Neste exemplo específico, se o nome de usuário for admin, a sessão será definida como tempo limite em 30 segundos.

    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, "");
           }
     
    }

    O tempo limite da sessão também pode ser definido de acordo com o endereço 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, "");
           }
     
    }