Allgemeine Skripte

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 "";