Micronaut 3升级后MongoDB自动CSFLE加密解密失效问题咨询
Micronaut 3升级后MongoDB自动CSFLE加密/解密失效问题
将应用从Micronaut 2升级至Micronaut 3后,MongoDB自动客户端字段级加密(CSFLE)的加密/解密功能完全失效。
手动创建ClientEncryption对象解密字段可正常工作,日志显示手动流程会获取解密所需的KMS及密钥信息:
INFO org.mongodb.driver.client - executeStateMachine: READY INFO org.mongodb.driver.client - executeStateMachine: NEED_MONGO_KEYS INFO org.mongodb.driver.client - executeStateMachine: NEED_KMS // manual decryption result here
但自动流程仅打印READY状态,未执行任何加密/解密操作。
环境信息
- 升级后相关依赖:
implementation "io.micronaut.mongodb:micronaut-mongo-reactive:4.2.0" // driver implementation "org.mongodb:mongodb-crypt:1.5.2" // uses libmongocrypt
- 运行系统:ubuntu:20.04,已安装mongodb-enterprise-cryptd v5.0.6,Mongo连接配置中
mongocryptdSpawnPath选项已指向其安装路径 - MongoDB服务器版本:Enterprise 4.2.21
示例文档与SchemaMap
无法提供确切的schemaMap及数据库详情,以下是由同一代码生成的类似示例,对应zoo数据库,以及两个使用CSFLE的集合dogAnimals和catAnimals。
dogAnimals集合示例文档
{ "basicDetails": { "dogName":"Barney", // should be encrypted "age":5, }, "furtherDetails": { "dogBreedInfo": { // should be encrypted "breedName": "Golden Retriever", "averageLifeSpanInYears": 20 } } }
catAnimals集合示例文档
{ "catName":"Mrs Miggins", // should be encrypted "age":2, "catFacts": { "favouriteHuman": "Robert Bingley", // should be encrypted "mood": "snob" } }
匹配的schemaMap
{ "zoo.dogAnimals": { "bsonType": "object", "encryptMetadata": { "keyId": [ { "$binary": { "base64": "12345678", "subType": "04" } } ] }, "properties": { "basicDetails": { "bsonType": "object", "properties": { "dogName": { "encrypt": { "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" } } } }, "futherDetails": { "bsonType": "object", "properties": { "dogBreedInfo": { "encrypt": { "bsonType": "object", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } } } } } }, "zoo.catAnimals": { "bsonType": "object", "encryptMetadata": { "keyId": [ { "$binary": { "base64": "12345678", "subType": "04" } } ] }, "properties": { "catName": { "encrypt": { "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } }, "catFacts": { "bsonType": "object", "properties": { "favouriteHuman": { "encrypt": { "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } } } } } } }
疑问
- 是否有展示Micronaut 3下自动CSFLE正常工作的示例?
- 是否有人遇到过该问题?
- 这是否是Micronaut 3的bug?
内容的提问来源于stack exchange,提问作者user2521119
相关产品推荐
相关产品推荐

