APIs de parâmetro POST e URL

  • Versão de lançamento: Yokohama
  • Atualizado 9 de jan. de 2026
  • 5 min. de leitura
  • Os parâmetros POST e URL podem ser acessados como propriedades do objeto request usando request.postParams e request.urlParams.

    Qualquer parâmetro único pode ser acessado como uma propriedade dos objetos primários postParams e urlParams chamando request.postParams.myParam. Qualquer parâmetro acessado dessa forma é um objeto da classe subjacente ParameterValue. Quaisquer APIs nessa classe podem ser chamadas em qualquer parâmetro.

    Depois de fazer a Inspeção da solicitação do cliente, pode ser necessário acessar e criptografar os valores de parâmetro do objeto request. Dependendo dos dados na solicitação do cliente, você pode criptografar valores e mapeá-los para campos na instância de várias maneiras.

    Como criptografar o valor de uma tabela e campo conhecidos

    Se você souber o nome da tabela de instância e do campo que conterá os dados criptografados, poderá defini-los explicitamente na regra de criptografia. Por exemplo, você sabe que a solicitação será processada na instância para criar um incidente e deseja criptografar o parâmetro text no campo de descrição. Nesse caso, você pode criar a ação a seguir.

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

    Como criptografar o valor de uma tabela e campo definidos dinamicamente

    Por outro lado, se você não souber o nome do campo que os dados criptografados preencherão, poderá defini-los dinamicamente usando tableName e fieldName.

    O exemplo abaixo processa uma solicitação genérica que pode armazenar dados em diferentes tabelas de tarefa (como incidente, problema e change_request) na instância.

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

    Esta ação:

    • Obtém a tabela de destino dos parâmetros de URL.
    • Itera sobre os parâmetros de URL.
    • Solicita ao servidor proxy Edge Encryption para criptografar qualquer parâmetro de URL com um nome que corresponda a um campo marcado para criptografia.
    • Pesquisa um parâmetro específico chamado text e solicita que o proxy Edge Encryption criptografe o valor com base na configuração de Edge Encryption de descrição na tabela de incidentes.

    Neste exemplo, o método valueFor() não está executando nenhuma criptografia. Em vez disso, o método solicita ao servidor proxy Edge Encryption para verificar se o par de tabela/campo no objeto "request" está marcado para criptografia com uma configuração de criptografia e, se aplicável, criptografá-lo.

    Como criptografar JSON ou XML em um parâmetro

    Um parâmetro POST ou URL pode incluir conteúdo JSON ou XML. Nesse caso, você pode processar o conteúdo do parâmetro, iterar os valores e criptografar os campos obrigatórios. Neste exemplo, o tableName ainda é acessado de um parâmetro POST, mas o valor do campo são os dadosdo objeto 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);
            }   
        }
    }

    Um exemplo de uma ação de regra de criptografia que processa XML em um parâmetro 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);
            }   
        }
    }

    Como criptografar uma consulta

    Você pode encontrar uma consulta codificada em um parâmetro na solicitação do cliente que contém dados confidenciais. Para corresponder um campo em uma consulta a um valor criptografado no banco de dados da instância, é preciso criar uma regra de criptografia que peça ao proxy para verificar se um campo na consulta está marcado para criptografia. O método encodedQueryFor() analisa uma consulta codificada em uma determinada tabela e verifica se algum campo na consulta tem configurações de criptografia.

    Neste exemplo, a regra itera sobre os parâmetros procurando o parâmetro filter, que deve ser uma consulta codificada do 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);
            }
        }
    }

    Por exemplo, se o valor do filter for short_description=My sensitive information^number=INC000056^category=Outage, a consulta se tornará short_description=<Encrypted(My sensitive information)>^number=INC000056^category=Outage na instância.

    ParameterValue "toString()"

    Converte o valor do parâmetro POST ou URL para uma cadeia de caracteres.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    Cadeia de caracteres O valor do parâmetro como uma cadeia de caracteres.

    ParameterValue "getAsJsonContent()"

    Retorna a solicitação como um objeto iterável do tipo JsonNode.

    Este método está disponível somente em uma regra de Edge Encryption se o corpo da solicitação for uma carga JSON válida. Se você não tiver certeza de qual formato o corpo da solicitação inclui, verifique o campo "contentType" no objeto request.

    Depois que a solicitação é retornada como um objeto JsonNode, você pode usar JSON APIs para iterar no objeto e criptografar os campos.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    JsonNode A solicitação como um JsonNode iterável.

    ParameterValue "getAsXmlContent()"

    Retorna o conteúdo da solicitação como um objeto iterável do tipo XMLContent.

    Este método está disponível somente em uma regra Edge Encryption e assume que o corpo da solicitação é uma carga XML válida. Você pode verificar o "contentType" para se certificar.

    Depois que a solicitação é retornada como um objeto XMLContent, você pode usar o XML APIs para iterar no objeto e criptografar os campos.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    XMLContent A solicitação como um objeto iterável do tipo XMLContent.

    ParameterValue "encodedQueryFor(cadeia de caracteres "tableName")"

    Especifica que o valor do elemento é uma consulta codificada na tabela especificada.

    Chamar esta função em um parâmetro informa ao proxy que o valor do parâmetro é uma Cadeia de caracteres de consulta codificada na tabela especificada. O proxy analisa a consulta codificada e criptografa os campos dessa consulta que devem ser criptografados.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres A tabela na qual você espera que a consulta seja executada.
    Tabela 8. Retorna
    Tipo Descrição
    vazio

    ParameterValue – valueFor(cadeia de caracteres "tableName", cadeia de caracteres "fieldName")

    Especifica que o valor do elemento seja mapeado para o campo especificado na tabela especificada.

    Chamar este método em um valor de elemento informa ao proxy que o valor desse elemento é mapeado para o campo especificado na tabela especificada. Dessa forma, o proxy verifica se o campo deve ser criptografado.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres O nome da tabela.
    fieldName Cadeia de caracteres O nome do campo.
    Tabela 10. Retorna
    Tipo Descrição
    vazio