Saídas de instalação
Saídas de instalação são personalizações que saem do Java para chamar um script antes de retornar ao Java.
Saídas de instalação disponíveis
Navegar até . 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, "");
}
}