【发布时间】:2021-12-10 18:37:54
【问题描述】:
我有一个 spring boot 项目(版本 2.5.5),我正在使用 spring-boot-starter-data-mongodb 依赖项来处理 MongoDB。
我有一个包含这些字段的 bean:
@Document(collection = "user_data")
public class UserData {
@Id
private String id;
@Field("is_active")
private Boolean isActive;
@Field("organization_id")
private String organizationId;
@Field("system_mode")
private SystemMode systemMode;
@Field("first_name")
private String firstName;
@Field("last_name")
private String lastName;
}
*还有构造函数、getter 和 setter,但为简单起见,我省略了它们。
我也有一个匹配的存储库:
@Repository
public interface UsersDataRepository extends MongoRepository<UserData, String> {
}
现在 firstName 和 lastName 字段实际上已加密并以二进制类型存储在数据库中。
当我试着说
Optional<UserData> optionalUserData = usersDataRepository.findById(userId);
我收到一条错误消息,指出无法从二进制转换为字符串,这是有道理的,因为字段已加密。
在数据库中,我有一个 key_vault 集合,其中包含要解密的密钥。
那么如何使用上述设置添加 MongoDB 客户端字段级别解密,以便我可以解密字段并在我的项目中使用它们?
【问题讨论】:
标签: java spring mongodb spring-boot encryption