You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:15:40