설치 종료
설치 종료는 Java로 돌아가기 전에 스크립트를 호출하기 위해 Java를 종료하는 사용자 정의입니다.
주:
여기에 설명된 기능을 사용하려면 관리자 역할이 필요합니다.
사용 가능한 설치 종료
다음으로 이동 레이블이 표시됩니다. 일부 설치 종료 이름(Login, Logout, ValidatePassword, ExternalAuthentication)은 예약되어 있으며 변경할 수 없습니다. 다른 설치 종료는 기본 설치 종료의 스크립트를 대체하는 사용자 지정 스크립트로 이를 재정의할 수 있습니다.
기본 시스템에서 사용할 수 있는 설치 종료는 다음과 같습니다.
| 설치 종료 | 설명 |
|---|---|
| 로그인 | 사용자 이름과 암호 쌍을 가져와서 사용자 객체로 인증합니다. |
| 로그아웃 | 로그아웃 시 사용자를 시작 페이지로 안내합니다. LogoutRedirect에 의해 재정의될 수 있습니다. |
| 로그아웃 리디렉션 | 로그아웃 시 사용자를 지정된 URL로 이동 |
| 외부 인증 | 헤더, 매개 변수 또는 쿠키를 사용하여 인증합니다. DigestSingleSignOn 및 PGPSingleSignOn에 의해 재정의될 수 있습니다. |
| 다이제스트 단일 사인온 | 헤더, 매개변수 또는 쿠키를 사용하여 인증하고 다이제스트 암호화를 해독합니다. |
| PGPSingleSignOn | 헤더, 매개 변수 또는 쿠키를 사용하여 인증하고 PGP 암호화를 해독합니다. |
| 비밀번호 유효성 검사 | 기본적으로 활성화되며, 릴리스부터 Helsinki 활성화되며, 고객이 자신의 암호 유효성 확인을 정의할 수 있습니다. ValidatePasswordStronger로 재정의할 수 있습니다. |
| ValidatePasswordStronger입니다 | 암호는 8자 이상이어야 하며 숫자, 대문자 및 소문자를 포함해야 합니다. |
| GetIntegrationSessionTimeout (영문) | 기본 통합 세션 시간 제한 동작을 구현합니다. |
로그인 수정
로그인 설치 엑시트에 대한 다음 수정은 사용자가 로그인할 때 각 사용자의 세션 제한시간 값을 설정합니다. 이 특정 예에서 사용자 이름이 admin인 경우 세션은 30초 후에 시간 초과로 설정됩니다.
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, "");
}
}
세션 시간 제한은 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, "");
}
}