API des paramètres POST et URL

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

    N’importe quel paramètre unique est accessible 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 du client, il peut être nécessaire d’accéder aux valeurs des paramètres et de les chiffrer à partir de l’objet de la demande . Selon les données de la demande client, vous pouvez chiffrer les 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 contiendra les données chiffrées, vous pouvez les définir explicitement dans la règle de chiffrement. Par exemple, vous pouvez savoir 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 qui peut stocker des données dans différentes tables de tâches (telles que 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 d’URL.
    • Demande au serveur proxy de chiffrer n’importe quel paramètre d’URL Chiffrement Edge avec un nom qui correspond à un champ marqué pour chiffrement.
    • Recherche un paramètre spécifique appelé texte et demande au Chiffrement Edge proxy de chiffrer la valeur en fonction de la configuration de chiffrement pour le champ Description sur la table Incident.

    Dans cet exemple, la méthode valueFor() n’effectue en fait aucun chiffrement. Au lieu de cela, la méthode demande Chiffrement Edge au serveur proxy de vérifier si la paire table/champ dans l’objet de la demande est marquée pour 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 dans le 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 les données de l’objet JSON.

    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 du code 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

    Vous pouvez rencontrer 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 d’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 sur une table donnée et vérifie si certains champs de la requête ont des configurations de chiffrement.

    Dans cet exemple, la règle itère les paramètres à la recherche du paramètre de filtre , qui doit ê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 devient 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 Valeur du paramètre sous forme de chaîne.

    ParameterValue : getAsJsonContent()

    Renvoie la demande en tant qu’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 le API JSON pour 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 sous forme de JsonNode itérable.

    ParameterValue : getAsXmlContent()

    Renvoie le contenu de la demande sous forme d’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 demande est renvoyée en tant qu’objet XMLContent , vous pouvez utiliser le API XML 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 prévoyez 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