Liferay 7.1.1 GA2 - 如何加密数据库内容?

Liferay 7.1.1 GA2 - How to encrypt database content?

我正在使用带有 MySQL CE 的 Liferay CE Portal 7.1.1 GA2,并希望为某些用户数据添加加密。 MySQL 只提供 TDE for the Enterprise Edition, so I want to use column-level encryption

对于 Hibernate,我会使用 @ColumnTransformer 注释。在 Liferay CE 7.1.1 GA2 中,有没有办法自动更改实体?

我不想在 Java 方面这样做,但如果有一个钩子机制或类似的东西我可以使用,那将是很棒的。

据我所知,没有什么可以自动透明加密的。你可以手动实现一个ModelListener来封装需要的实现。

在后台,ServiceBuilder 使用 Hibernate,但我不知道 @ColumnTransformer 有任何支持。特别是当它应该在代码生成器的另一个 运行 中存活时。但是,您可能想查看持久层上生成的代码并尝试一下。请记住,代码生成器有很多未来的 运行,因此您不仅应该测试是否可以插入注释,还应该查看它是否在下一个生成器 运行 中存活。

作为另一个(但难以维护)选项,您可能需要查看 ServiceBuilder 的模板。我会避免在那里进行大规模更改,但如果更改很小,则可能有必要进行此更改。在这种情况下,我建议您与 Liferay 互动(在 Liferay 论坛和 issuetracker 上)以尝试将其纳入下一版本的 ServiceBuilder。