API de paramètres POST et URL

  • Rversion finale: Xanadu
  • Mis à jour 9 janv. 2026
  • 5 minutes de lecture
  • Les paramètres POST et URL sont accessibles en tant que propriétés de l’objet de la demande à l’aide de request.postParams et request.urlParams.

    Vous pouvez accéder à n’importe quel paramètre unique en tant que propriété des objets parents postParams et urlParams en appelant request.postParams.myParam. Tout paramètre accessible de cette manière est un objet de la classe sous-jacente ParameterValue. Toutes les API de cette classe peuvent être appelées sur n’importe quel paramètre.

    Après avoir inspecté la demande client, il peut être nécessaire d’accéder aux valeurs de paramètres de l’objet de la demande et de les chiffrer. Selon les données de la demande client, vous pouvez chiffrer des valeurs et les mapper aux champs de l’instance de plusieurs façons.

    Chiffrer la valeur d’une table et d’un champ connus

    Si vous connaissez le nom de la table d’instance et du champ qui contiendront les données chiffrées, vous pouvez les définir explicitement dans la règle de chiffrement. Par exemple, vous savez peut-être que la demande sera traitée sur l’instance pour créer un incident et vous souhaitez chiffrer le paramètre de texte dans le champ de description. Dans ce cas, vous pouvez créer l’action suivante.

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

    Chiffrer la valeur d’une table et d’un champ définis dynamiquement

    Si, à l’inverse, vous ne connaissez pas le nom du champ que les données chiffrées rempliront, vous pouvez les définir dynamiquement à l’aide de tableName et fieldName.

    L’exemple ci-dessous traite une demande générique susceptible de stocker des données dans différentes tables de tâches (par exemple, incident, problème et change_request) sur l’instance.

    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);
            }
        }
    }

    Cette action :

    • Obtient la table de destination à partir des paramètres d’URL.
    • Itère sur les paramètres de l’URL.
    • Demande au serveur proxy de chiffrer tout paramètre d’URL dont le Chiffrement Edge nom correspond à un champ marqué pour chiffrement.
    • Recherche un paramètre spécifique appelé texte et demande Chiffrement Edge au proxy de chiffrer la valeur en fonction de la configuration de chiffrement pour le champ de description dans la table d’incident.

    Dans cet exemple, la méthode valueFor() n’effectue en fait aucun chiffrement. Au lieu de Chiffrement Edge cela, la méthode demande au serveur proxy de vérifier si la paire table/champ dans l’objet de la requête est marquée pour le chiffrement avec une configuration de chiffrement et, le cas échéant, de la chiffrer.

    Chiffrer JSON ou XML dans un paramètre

    Un paramètre POST ou URL peut inclure du contenu JSON ou XML. Dans ce cas, vous pouvez traiter le contenu à l’intérieur du paramètre, itérer sur les valeurs et chiffrer les champs requis. Dans cet exemple, le tableName est toujours accessible à partir d’un paramètre POST, mais la valeur du champ est l’objet JSON data.

    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);
            }   
        }
    }

    Exemple d’une action de règle de chiffrement qui traite XML dans un paramètre POST.

    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);
            }   
        }
    }

    Chiffrer une requête

    Il se peut que vous rencontriez une requête codée dans un paramètre de la demande client qui contient des données sensibles. Pour faire correspondre un champ d’une requête à une valeur chiffrée dans la base de données de l’instance, vous devez créer une règle de chiffrement qui demande au proxy de vérifier si un champ de la requête est marqué pour le chiffrement. La méthode encodedQueryFor() analyse une requête codée dans une table donnée et vérifie si des champs de la requête ont des configurations de chiffrement.

    Dans cet exemple, la règle itère sur les paramètres à la recherche du paramètre de filtre , qui est censé être une requête codée Glide.

    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);
            }
        }
    }

    Par exemple, si la valeur du filtre est : short_description=Mes informations sensibles^numéro=INC000056^catégorie=Panne, la requête deviendra short_description=<Chiffré(Mes informations sensibles)>^numéro=INC000056^catégorie=Panne sur l’instance.

    ParameterValue : toString()

    Convertit la valeur du paramètre POST ou URL en chaîne.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    Chaîne La valeur du paramètre sous forme de chaîne.

    ParameterValue : getAsJsonContent()

    Renvoie la demande sous la forme d’un objet itérable de type JsonNode.

    Cette méthode n’est disponible que dans une Chiffrement Edge règle si le corps de la demande est une charge utile JSON valide. Si vous n’êtes pas sûr du format inclus dans le corps de la demande, vérifiez le champ contentType sur l’objet de la demande .

    Une fois la demande renvoyée en tant qu’objet JsonNode , vous pouvez utiliser la méthode pour API JSON itérer sur l’objet et chiffrer les champs.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Nœud JSON La demande en tant que JsonNode itérable.

    ParameterValue : getAsXmlContent()

    Renvoie le contenu de la demande en tant qu’objet itérable de type XMLContent.

    Cette méthode n’est disponible que dans une Chiffrement Edge règle. Cette méthode suppose que le corps de la demande est une charge utile XML valide. Vous pouvez vérifier le contentType pour vous en assurer.

    Une fois que la requête est renvoyée en tant qu’objet XMLContent , vous pouvez utiliser la API XML méthode pour itérer sur l’objet et chiffrer les champs.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    XMLContent La demande en tant qu’objet itérable de type XMLContent.

    ParameterValue : encodedQueryFor(String tableName)

    Spécifie que la valeur de l’élément est une requête codée sur la table spécifiée.

    L’appel de cette fonction sur un paramètre indique au proxy que la valeur du paramètre est une chaîne de requête codée pour la table spécifiée. Le proxy analyse la requête codée et chiffre les champs de la requête codée qui doivent être chiffrés.

    Tableau 7. Paramètres
    Nom Type Description
    tableName Chaîne Table sur laquelle vous attendez que la requête s’exécute.
    Tableau 8. Renvoie
    Type Description
    nul

    ParameterValue : valueFor(String tableName, String fieldName)

    Spécifie que la valeur de l’élément est mappée au champ spécifié dans la table spécifiée.

    L’appel de cette méthode sur une valeur d’élément indique au proxy que la valeur de cet élément est mappée au champ spécifié dans la table spécifiée. Le proxy vérifie ensuite si le champ doit être chiffré.

    Tableau 9. Paramètres
    Nom Type Description
    tableName Chaîne Le nom de la table.
    Fieldname Chaîne Nom du champ.
    Tableau 10. Renvoie
    Type Description
    nul