Получение списков сущностей

При получении списка контейнеров (getContainerList) и автономных сертификатов (getStandaloneCertificateList) есть возможность задать фильтры поиска при помощи передачи аргумента filters. Т.к. структуры имени издателя и субъекта идентичны, то и фильтрация по этим полям также идентична. Для обеих команд фильтры работают идентично, поэтому для примера будет использоваться getStandaloneCertificateList.

Предположим, что на токене 0 есть следующие автономные сертификаты:

ID Серийный номер Имя издателя Имя субъекта
0 00 a0
CN = Root
C = RU
CN = Root
C = RU
1 10 a1 b1
CN = Root
C = RU
CN = Intermediate 1
C = EN
2 20 a2 b2
CN = Intermediate 1
C = EN
CN = Intermediate 2
C = RU
3 00 a0
CN = Example Inc.
C = EN
CN = Intermediate Example
C = RU

Функция отображения результата:

// Функция отображения результата
function printList(text, list) {
   var result = list.map(function(obj) {
      return obj.id;
   });

   console.log(text + ' (size: ' + result.length + '): ' + result)
}

Получение списка без фильтрации

var tokenID = 0; // Идентификатор токена
var list = [];

// Пример 0
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID
   }
});

printList('Пример 0', list);

// Пример 1
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {}
   }
});

printList('Пример 1', list);

// ----- Результат -----
// Пример 0 (size: 4): 0,1,2,3
// Пример 1 (size: 4): 0,1,2,3

Получение списка с фильтрацией по серийному номеру

var tokenID = 0; // Идентификатор токена
var list = [];

// Пример 0
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         serialNumber: '00 a0'
      }
   }
});

printList('Пример 0', list);

// Пример 1
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         serialNumber: '00 A0'
      }
   }
});

printList('Пример 1', list);

// Пример 2
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         serialNumber: '11'
      }
   }
});

printList('Пример 2', list);


// ----- Результат -----
// Пример 0 (size: 2): 0,3
// Пример 1 (size: 2): 0,3
// Пример 2 (size: 0):

Получение списка с фильтрацией по имени издателя

var tokenID = 0; // Идентификатор токена
var list = [];

// Пример 0
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'Root'
      }
   }
});

printList('Пример 0', list);

// Пример 1
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'CN = Root'
      }
   }
});

// Пример 2
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'Intermediate 1'
      }
   }
});

printList('Пример 2', list);

// Пример 3
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'root'
      }
   }
});

printList('Пример 3', list);

// Пример 4
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'Intermediate'
      }
   }
});

printList('Пример 4', list);

// Пример 5
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'EN'
      }
   }
});

printList('Пример 5', list);


// ----- Результат -----
// Пример 0 (size: 2): 0,1
// Пример 1 (size: 2): 0,1
// Пример 2 (size: 1): 2
// Пример 3 (size: 0):
// Пример 4 (size: 1): 2
// Пример 5 (size: 1): 3

Получение списка с фильтрацией по имени субъекта

var tokenID = 0; // Идентификатор токена
var list = [];

// Пример 0
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'Root'
      }
   }
});

printList('Пример 0', list);

// Пример 1
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'CN = Root'
      }
   }
});

printList('Пример 1', list);

// Пример 2
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'Intermediate 2'
      }
   }
});

printList('Пример 2', list);

// Пример 3
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'intermediate'
      }
   }
});

printList('Пример 3', list);

// Пример 4
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'Intermediate'
      }
   }
});

printList('Пример 4', list);

// Пример 5
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         subjectName: 'C = RU'
      }
   }
});

printList('Пример 5', list);


// ----- Результат -----
// Пример 0 (size: 1): 0
// Пример 1 (size: 1): 0
// Пример 2 (size: 1): 2
// Пример 3 (size: 0):
// Пример 4 (size: 3): 1,2,3
// Пример 5 (size: 3): 0,2,3

Получение списка с фильтрацией по нескольким параметрам

var tokenID = 0; // Идентификатор токена
var list = [];

// Пример 0
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'C = RU',
         subjectName: 'Intermediate'
      }
   }
});

printList('Пример 0', list);

// Пример 1
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         issuerName: 'EN',
         subjectName: 'C = RU'
      }
   }
});

printList('Пример 1', list);

// Пример 2
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         serialNumber: '00 a0'
         subjectName: 'C = RU'
      }
   }
});

printList('Пример 2', list);

// Пример 3
list = JCWebClient2.getStandaloneCertificateList({
   args: {
      tokenID: tokenID,
      filters: {
         serialNumber: '00 a0'
         issuerName: 'Example Inc.',
         subjectName: 'CN = Intermediate'
      }
   }
});

printList('Пример 3', list);


// ----- Результат -----
// Пример 0 (size: 1): 1
// Пример 1 (size: 2): 2,3
// Пример 2 (size: 2): 0,3
// Пример 3 (size: 1): 3