POST- und URL-Parameter-APIs

  • Freigeben Version: Xanadu
  • Aktualisiert 9. Januar 2026
  • 5 Minuten Lesedauer
  • POST- und URL-Parameter können als Eigenschaften des Objekts Anforderung über request.postParams und request.urlParams aufgerufen werden.

    Auf jeden einzelnen Parameter kann als Eigenschaft der übergeordneten Objekte postParams und urlParams durch Aufrufen von request.postParams.myParam zugegriffen werden. Jeder Parameter, auf den auf diese Weise zugegriffen wird, ist ein Objekt der zugrunde liegenden Klasse ParameterValue. Alle APIs in dieser Klasse können für jeden Parameter aufgerufen werden.

    Nach dem Überprüfen der Client-Anforderung kann es notwendig sein, auf Parameterwerte aus dem Objekt Anforderung zuzugreifen und diese zu verschlüsseln. Abhängig von den Daten in der Clientanforderung können Sie Werte auf mehrere Arten verschlüsseln und sie Feldern in der Instanz zuordnen.

    Den Wert einer bekannten Tabelle und eines Felds verschlüsseln

    Wenn Sie den Namen der Instanztabelle und des Felds kennen, in dem die verschlüsselten Daten gespeichert werden sollen, können Sie sie explizit in der Verschlüsselungsregel definieren. Möglicherweise wissen Sie beispielsweise, dass die Anforderung in der Instanz verarbeitet wird, um einen Incident zu erstellen, und Sie möchten den Parameter Text im Beschreibungsfeld verschlüsseln. In diesem Fall können Sie die folgende Aktion erstellen.

    function SampleAction1() { 
        request.postParams.text.valueFor('incident', 'description');
    }

    Den Wert einer dynamisch definierten Tabelle und eines Felds verschlüsseln

    Wenn Sie andererseits den Namen des Feldes nicht kennen, das die verschlüsselten Daten füllen sollen, können Sie sie mit tableName und fieldName dynamisch definieren.

    Im folgenden Beispiel wird eine generische Anforderung verarbeitet, in der möglicherweise Daten in verschiedenen Aufgabentabellen (z. B. Incident, Problem und Change_request) in der Instanz gespeichert werden.

    function SampleAction2() {
        var tableName = request.urlParams.table;  
        for (var parameter in request.postParams) {   
            var currentParam = request.postParams[parameter];
            var fieldName = currentParam.toString();
            if (fieldName == 'text') {
                currentParam.valueFor(tableName, 'description') 
            } else {
                currentParam.valueFor(tableName, fieldName);
            }
        }
    }

    Diese Aktion:

    • Ruft die Zieltabelle aus den URL-Parametern ab.
    • Iteriert über die URL-Parameter.
    • Fordert den Edge Encryption Proxy-Server auf, jeden URL-Parameter mit einem Namen zu verschlüsseln, der einem für die Verschlüsselung markierten Feld entspricht.
    • Sucht nach einem bestimmten Parameter namens Text und fordert den Edge Encryption Proxy auf, den Wert basierend auf der Verschlüsselungskonfiguration für das Beschreibungsfeld in der Incident-Tabelle zu verschlüsseln.

    In diesem Beispiel führt die Methode valueFor() eigentlich keine Verschlüsselung durch. Vielmehr fordert das Verfahren den Edge Encryption Proxy-Server auf, zu prüfen, ob das Tabellen-/Feldpaar im Anforderungsobjekt mit einer Verschlüsselungskonfiguration zur Verschlüsselung vorgemerkt ist, und gegebenenfalls zu verschlüsseln.

    JSON oder XML innerhalb eines Parameters verschlüsseln

    Ein POST- oder URL-Parameter kann JSON- oder XML-Inhalte enthalten. In diesem Fall können Sie den Inhalt innerhalb des Parameters verarbeiten, die Werte durchlaufen und die erforderlichen Felder verschlüsseln. In diesem Beispiel wird weiterhin über einen POST-Parameter auf tableName zugegriffen, aber der Wert des Feldes ist das JSON-Objekt Daten.

    function SampleAction3() {
        var tableName = request.postParams.table;
        var data = request.postParams.data;
        var dataIterator = data.getAsJsonContent().iterator();
        while (dataIterator.hasNext()) {
            var jsonElement = dataIterator.next();
            var fieldName = jsonElement.getName();
            if (fieldName == 'text') {
                jsonElement.valueFor(tableName, 'description');
            } else {
                jsonElement.valueFor(tableName, fieldName);
            }   
        }
    }

    Ein Beispiel für eine Verschlüsselungsregelaktion, die XML innerhalb eines POST-Parameters verarbeitet.

    function SampleAction4() {
        var tableName = request.postParams.table;
        var data = request.postParams.data;
        var dataIterator = data.getAsXmlContent().getIteratorOverAllChildren();
        while (dataIterator.hasNext()) {
            var jsonElement = dataIterator.next();
            var fieldName = jsonElement.getName();
            if (fieldName == 'text') {
                jsonElement.valueFor(tableName, 'description');
            } else {
                jsonElement.valueFor(tableName, fieldName);
            }   
        }
    }

    Eine Anforderung verschlüsseln

    In einer Client-Anforderung, die vertrauliche Daten enthält, tritt möglicherweise eine verschlüsselte Abfrage in einem Parameter auf. Um ein Feld in einer Abfrage einem verschlüsselten Wert in der Instanzdatenbank zuzuordnen, müssen Sie eine Verschlüsselungsregel erstellen, die den Proxy-Server auffordert, zu prüfen, ob ein Feld in der Abfrage für die Verschlüsselung markiert ist. Die Methode encodedQueryFor() analysiert eine verschlüsselte Abfrage für eine bestimmte Tabelle und prüft, ob Felder in der Abfrage Verschlüsselungskonfigurationen enthalten.

    In diesem Beispiel durchläuft die Regel die Parameter und sucht den Parameter Filter, der voraussichtlich eine Glide-codierte Abfrage ist.

    function SampleAction5() {
        var tableName = request.urlParams.table;
        for (var parameter in request.postParams) {
            var currentParam = request.postParams[parameter];
            var fieldName = currentParam.toString();
            if (fieldName == 'filter') {
                currentParam.encodedQueryFor(tableName);
            } else {
                currentParam.valueFor(tableName, fieldName);
            }
        }
    }

    Wenn beispielsweise der Wert von Filter short_description=My sensitive information^number=INC000056^category=Outage ist, würde die Abfrage in der Instanz zu short_description=<Encrypted(My sensitive information)>^number=INC000056^category=Outage werden.

    ParameterValue - toString()

    Konvertiert den POST- oder URL-Parameterwert in eine Zeichenfolge.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der Parameterwert als Zeichenfolge.

    ParameterValue - getAsJsonContent()

    Gibt die Anforderung als iterierbares Objekt vom Typ JsonNode zurück.

    Diese Methode ist nur in einer Edge Encryption-Regel verfügbar, wenn der Anforderungstext eine gültige JSON-Payload ist. Wenn Sie nicht sicher sind, in welchem ​​Format der Anforderungstext enthalten ist, überprüfen Sie das Feld „contentType“ im Objekt Anforderung.

    Sobald die Anforderung als JsonNode-Objekt zurückgegeben wird, können Sie mit Hilfe von JSON-APIs über das Objekt iterieren und Felder verschlüsseln.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    JsonNode Die Anforderung als iterierbarer JsonNode.

    ParameterValue - getAsXmlContent()

    Gibt den Anforderungsinhalt als iterierbares Objekt vom Typ XMLContent zurück.

    Diese Methode ist nur in einer Edge Encryption-Regel verfügbar Diese Methode setzt voraus, dass der Anforderungstext eine gültige XML-Payload ist. Sie können den contentType überprüfen, um sicherzustellen, dass dies der Fall ist.

    Sobald die Anfrage als XMLContent-Objekt zurückgegeben wird, können Sie mit Hilfe von XML-APIs über die Objekt- und Verschlüsselungsfelder iterieren.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    XMLContent Die Anforderung als iterierbares Objekt vom Typ XMLContent.

    ParameterValue - encodedQueryFor(String tableName)

    Gibt an, dass der Wert des Elements eine codierte Abfrage für die angegebene Tabelle ist.

    Durch Aufrufen dieser Funktion für einen Parameter wird dem Proxy mitgeteilt, dass der Wert des Parameters eine codierte Abfragezeichenfolge für die angegebene Tabelle ist. Der Proxy analysiert die verschlüsselte Abfrage und verschlüsselt die Felder in der verschlüsselten Abfrage, die verschlüsselt werden müssen.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Die Tabelle, auf der die Abfrage ausgeführt werden soll.
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    void

    ParameterValue - valueFor(String tableName, String fieldName)

    Gibt an, dass der Wert des Elements dem angegebenen Feld in der angegebenen Tabelle zugeordnet ist.

    Durch Aufrufen dieser Methode für einen Elementwert wird dem Proxy mitgeteilt, dass der Wert für dieses Element dem angegebenen Feld in der angegebenen Tabelle zugeordnet ist. Der Proxy prüft dann, ob das Feld verschlüsselt werden muss.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Der Tabellenname.
    fieldName Zeichenfolge Der Feldname.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    void