Installations-Exits
Installationsausgänge sind Anpassungen, die Java beenden, um ein Skript aufzurufen, bevor Sie zu Java zurückkehren.
Verfügbare Installations-Exits
Navigieren zu an. Einige Namen des Installationsausgangs (Anmeldung, Abmeldung, ValidatePassword, ExterneAuthentifizierung) sind reserviert und können nicht geändert werden. Andere Installationsausgänge können diese mit einem anwenderdefinierten Skript überschreiben, das das Skript im Standardinstallationsausstieg ersetzt.
Die folgenden Installations-Exits sind im Basissystem verfügbar:
| Installationsausgang | Beschreibung |
|---|---|
| Anmelden | Verwendet ein Anwendername-Passwort-Paar und authentifiziert sich mit dem Anwenderobjekt |
| Abmelden | Leitet den Anwender beim Abmelden zur Willkommensseite zurück; kann von LogoutRedirect überschrieben werden |
| LogoutRedirect | Leitet den Anwender beim Abmelden zu einer angegebenen URL weiter |
| ExterneAuthentifizierung | Authentifiziert mithilfe von Header, Parameter oder Cookie; kann von DigestSingleSignOn und PGPSingleSignOn überschrieben werden |
| DigestSingleSignOn | Authentifiziert sich mithilfe von Header, Parameter oder Cookie und entschlüsselt die Digest-Verschlüsselung |
| PGPSingleSignOn | Authentifiziert sich mithilfe von Header, Parameter oder Cookie und entschlüsselt die PGP-Verschlüsselung |
| Validieren SiePasswort | Standardmäßig ab Release Helsinki aktiv; Mit können Kunden ihre eigene Passwortvalidierung definieren. kann von ValidatePasswordStronger überschrieben werden |
| Validieren SiePasswordStronger | Erfordert, dass Passwörter mindestens 8 Zeichen lang sind und eine Ziffer, einen Großbuchstaben und einen Kleinbuchstaben enthalten |
| GetIntegrationSessionTimeout | Implementiert das Standardverhalten für die Zeitüberschreitung bei Integrationssitzungen. |
Anmeldeänderungen
Die folgende Änderung am Login -Installations-Exit legt den Wert für die Sitzungszeitüberschreitung jedes Benutzers fest, während sich der Benutzer anmeldet. Wenn in diesem Beispiel der Benutzername adminlautet, wird für die Sitzung ein Timeout von 30 Sekunden festgelegt.
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, "");
}
}
Die Zeitüberschreitung für Sitzungen kann auch entsprechend der IP-Adresse festgelegt werden.
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, "");
}
}