Spring 中审计的最佳方式

Best way for Audit in Spring

我正在创建一个用户可以创建游戏的应用程序。我在实体 Game 中存储谁是创建游戏的用户,我的意思是游戏的所有者。实体 Game 有一些关系 ONE_TO_ONE (RuleGame) 和 ONE_TO_MANY (PublicZonePrivateZones) 到其他实体。

我想要的是只有游戏的所有者和拥有 ROLE_ADMIN 和 ROLE_STAFF 的用户才能编辑游戏及其关系。

换一种说法,就像社交网络一样,只有我和管理员可以编辑我的个人资料,但我不能编辑其他用户的个人资料。

当然,我可以在@Service 和这些实体的控制器的每个 "update" 方法中创建自己的逻辑(Game PublicZonePrivateZones) 调用它并检查它,但我想知道是否有更好的方法。

我正在阅读有关 Audit 的内容,例如 Hibernate Envers,但它适用于类似 wiki 的软件,log who added/updated/deleted,因此它不符合我的需要。

我正在使用 Spring 4.1.6、Spring Data Jpa 1.8.0、Spring Security 4 和 Hibernate 4.3.8

欢迎大家提出建议!

您将要使用 spring-data-jpa auditing along with a security framework such as spring security。这将允许在创建和修改记录时自动添加用户名,而无需您自己进行额外的逻辑。