Sorties d’installation
Les sorties d’installation sont des personnalisations qui quittent Java pour appeler un script avant de revenir à Java.
Sorties d’installation disponibles
Accédez à la . Certains noms de sortie d’installation (Login, Logout, ValidatePassword, ExternalAuthentication) sont réservés et ne peuvent pas être modifiés. Les autres sorties d’installation peuvent être remplacées 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 | Prend une paire de nom d’utilisateur et de mot de passe et s’authentifie avec l’objet utilisateur |
| Déconnecter | Dirige l’utilisateur vers la page d’accueil lorsqu’il se déconnecte. peut être remplacé par LogoutRedirect |
| Redirection de déconnexion | 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 |
| Synthèse d’authentification unique | 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 |
| ValidatePassword (en anglais seulement) | Actif par défaut, à partir de la Helsinki mise en production ; permet aux clients de définir leur propre validation de mot de passe ; peut être remplacé par ValidatePasswordStronger |
| ValiderMotDePassePlus Fort | Exige que les mots de passe comportent au moins 8 caractères dont un chiffre, une lettre majuscule et une lettre minuscule |
| GetIntegrationSessionTimeout | Implémente le comportement d’expiration de session d’intégration par défaut. |
Modifications de connexion
La modification suivante de la sortie d’installation de connexion définit la valeur de délai d’expiration de session de chaque utilisateur au moment de la connexion de l’utilisateur. Dans cet exemple particulier, si le nom d’utilisateur est admin, la session est définie pour expirer au bout 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, "");
}
}