Allgemeine Skripte#
sysman
sysadmin
Allgemeine Skripte sind meist an einen bestimmten Klassennamen gebunden. Erkennt das System das Vorhandensein einer solchen Klasse, wird diese je nach Zweck aufgerufen.
Beispiele#
Das folgende Skript erweitert die Benutzerauthentifizierung, um weitergeleitete Benutzeranmeldeinformationen von einem Identitätsanbieter wie Shiboleth zu akzeptieren. Das Skript muss als „UserAuthentication“ bezeichnet werden und die Container-basierte Authentifizierung (CBA) muss in der Serverkonfiguration, LDAP / SSO-Registerkarte aktiviert sein.
import java.util.Enumeration;
import java.util.List;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
System.out.println("Starting to examine request header...");
HttpServletRequest request = binding.getProperty("request");
Enumeration<String> headerNames = request.getHeaderNames();
String userName = null;
String referer = null;
while (headerNames.hasMoreElements()) {
String key = (String) headerNames.nextElement();
String value = request.getHeader(key);
System.out.println(key + ": " + value);
if (key.equals("authorization")) {
String decodedString = null;
value = value.replaceAll("Basic ", "");
decodedString = new String(Base64.decodeBase64(value), StandardCharsets.UTF_8);
if (decodedString != null && decodedString.split(":").length > 0) {
String[] userPassArr = decodedString.split(":");
userName = userPassArr[0];
}
}
if (key.equals("referer")) {
referer = value;
}
if (key.equals("X-Forwarded-User")) {
return value;
}
}
System.out.println("Finished examining request header...");
return "";