POST 및 URL 매개변수 API

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2026년 03월 13일
  • 소요 시간: 7분
  • POST 및 URL 매개변수는 request.postParamsrequest.urlParams를 사용하여 요청 객체의 속성으로 액세스할 수 있습니다.

    request.postParams.myParam을 호출하여 postParamsurlParams 상위 객체의 속성으로 단일 매개변수에 액세스할 수 있습니다. 이러한 방식으로 액세스되는 모든 매개 변수는 기본 클래스 ParameterValue의 개체입니다. 이 클래스의 모든 API는 모든 매개변수에서 호출할 수 있습니다.

    클라이언트 요청을 검사한 후 요청 개체의 매개 변수 값에 액세스하고 암호화해야 할 수 있습니다. 클라이언트 요청의 데이터에 따라 값을 암호화하고 여러 가지 방법으로 인스턴스의 필드에 매핑할 수 있습니다.

    알려진 테이블 및 필드의 값 암호화

    암호화된 데이터를 저장할 인스턴스 테이블 및 필드의 이름을 알고 있는 경우 암호화 규칙에서 이를 명시적으로 정의할 수 있습니다. 예를 들어 인시던트를 생성하기 위한 요청이 인스턴스에서 처리되고 설명 필드의 텍스트 매개변수를 암호화하려 한다는 것을 알고 있을 수 있습니다. 이 경우 다음 작업을 만들 수 있습니다.

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

    동적으로 정의된 테이블 및 필드의 값 암호화

    반대로 암호화된 데이터가 채울 필드의 이름을 모르는 경우에는 tableNamefieldName을 사용하여 동적으로 정의할 수 있습니다.

    아래 예시에서는 인스턴스의 여러 작업 테이블(예: 인시던트, 문제, change_request)에 데이터를 저장할 수 있는 일반 요청을 처리합니다.

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

    이 작업:

    • URL 매개변수에서 대상 테이블을 가져옵니다.
    • URL 매개변수를 반복합니다.
    • 암호화 표시된 필드와 이름이 일치하는 URL 매개변수를 암호화하도록 프록시 서버에 요청합니다 에지 암호화 규칙 .
    • 텍스트라는 특정 매개변수를 찾아 인시던트 테이블의 설명 필드에 대한 암호화 구성을 기반으로 값을 암호화하도록 프록시에 에지 암호화 규칙 요청합니다.

    이 예제에서 valueFor() 메서드는 실제로 암호화를 수행하지 않습니다. 대신 메서드는 요청 개체의 테이블/필드 쌍이 암호화 구성을 사용하여 암호화하도록 표시되는지 여부를 확인하고 해당하는 경우 암호화하도록 프록시 서버에 요청합니다 에지 암호화 규칙 .

    매개변수 내에서 JSON 또는 XML 암호화

    POST 또는 URL 매개변수에는 JSON 또는 XML 컨텐츠가 포함될 수 있습니다. 이 경우 매개변수 내의 컨텐츠를 처리하고, 값을 반복하고, 필수 필드를 암호화할 수 있습니다. 이 예에서 tableName 은 POST 매개변수에서 계속 액세스되지만 필드 값은 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);
            }   
        }
    }

    POST 매개변수 내에서 XML을 처리하는 암호화 규칙 작업의 예입니다.

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

    쿼리 암호화

    중요한 데이터를 포함하는 클라이언트 요청의 매개변수 내에서 인코딩된 쿼리가 발생할 수 있습니다. 쿼리의 필드를 인스턴스 데이터베이스의 암호화된 값과 일치시키려면 쿼리의 필드가 암호화되도록 표시되는지 여부를 확인하도록 프록시에 요청하는 암호화 규칙을 생성해야 합니다. encodedQueryFor() 메서드는 지정된 테이블에서 인코딩된 쿼리를 구문 분석하고 쿼리의 필드에 암호화 구성이 있는지 확인합니다.

    이 예에서 규칙은 필터 매개변수를 찾는 매개변수를 반복하며, 이는 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);
            }
        }
    }

    예를 들어 필터 값이 short_description=내 중요한 정보^숫자=INC000056^범주=중단인 경우 쿼리는 인스턴스에서 short_description=<암호화됨(내 중요한 정보)>^숫자=INC000056^범주=중단 이 됩니다.

    ParameterValue - toString()

    POST 또는 URL 매개변수 값을 문자열로 변환합니다.

    표 1. 매개변수
    이름 유형 설명
    없음
    표 2. 반환
    유형 설명
    문자열 문자열로서의 매개변수 값입니다.

    ParameterValue - getAsJsonContent()

    요청을 JsonNode 형식의 반복 가능한 개체로 반환합니다.

    이 메서드는 요청 본문이 유효한 JSON 페이로드인 경우 규칙에서만 에지 암호화 규칙 사용할 수 있습니다. 요청 본문에 포함된 형식이 확실하지 않은 경우 요청 객체의 contentType 필드를 확인합니다.

    요청이 JsonNode 개체로 반환되면 개체를 JSON API 반복하고 필드를 암호화하는 데 사용할 수 있습니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    JsonNode 반복 가능한 JsonNode로서의 요청입니다.

    ParameterValue - getAsXmlContent()

    요청 내용을 XMLContent 형식의 반복 가능한 개체로 반환합니다.

    이 방법은 규칙에서만 사용할 수 있습니다 에지 암호화 규칙 . 이 메서드는 요청 본문이 유효한 XML 페이로드라고 가정합니다. contentType을 확인하여 확인할 수 있습니다.

    요청이 XMLContent 객체로 반환되면 를 XML API 사용하여 객체를 반복하고 필드를 암호화할 수 있습니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    XMLContent XMLContent 형식의 반복 가능한 개체인 요청입니다.

    ParameterValue - encodedQueryFor(String tableName)

    요소의 값이 지정된 테이블에서 인코딩된 쿼리임을 지정합니다.

    매개 변수에서 이 함수를 호출하면 매개 변수의 값이 지정된 테이블에 대한 인코딩된 쿼리 문자열 임을 프록시에 알릴 수 있습니다. 프록시는 인코딩된 쿼리를 구문 분석하고 암호화해야 하는 인코딩된 쿼리의 필드를 암호화합니다.

    표 7. 매개변수
    이름 유형 설명
    tableName 문자열 쿼리가 실행될 테이블입니다.
    표 8. 반환
    유형 설명
    void

    ParameterValue - valueFor(문자열 테이블 이름, 문자열 필드 이름)

    요소 값이 지정된 테이블의 지정된 필드에 매핑되도록 지정합니다.

    요소 값에 대해 이 메서드를 호출하면 이 요소의 값이 지정된 테이블의 지정된 필드에 매핑됨을 프록시에 알립니다. 그런 다음 프록시는 필드를 암호화해야 하는지 확인합니다.

    표 9. 매개변수
    이름 유형 설명
    tableName 문자열 테이블 이름입니다.
    fieldName 문자열 필드 이름입니다.
    표 10. 반환
    유형 설명
    void