Я пытаюсь внедрить Automati c Клиентское шифрование на уровне поля (CSFLE) в MongoDB (Enterprize Edition). Шаги, представленные в MongoDB Docs , работают отлично. Однако spring-data-mongodb
предоставляет способ генерации $ jsonSchema с использованием класса MongoJsonSchema.builder (), чтобы избежать написания схемы в raw JSON.
Проблема, с которой я сталкиваюсь, заключается в том, что схема, сгенерированная MongoJsonSchem.builder()
отличается от упомянутой спецификации и примера, приведенного в Документах MongoDB здесь . Чтобы указать c, в примере есть
"keyId": [
{
"$binary": {
"base64": "<paste_your_key_id_here>",
"subType": "04"
}
}
]
, но схема, сгенерированная компоновщиком, имеет
"keyId": [
{
"$binary": "<base64 encoded uuid>",
"$type": "03"
}
]
Выполнение завершается ошибкой только потому, что формат ключа не соответствует формату драйвера ожидает.
К сожалению, EncryptedJsonSchemaProperty
имеет только keyId()
, который принимает строку, и keys()
, который принимает массив UUID. Оба метода генерируют схему, которая не соответствует примеру.
Есть ли что-то, что мне не хватает, или же конструктор не предназначен для использования для генерации SchemaMap
, который может быть передан * 1023? * пока.