我正在创建一个用户可以创建游戏的应用程序。我在实体Game中存储创建游戏的用户,我的意思是游戏的所有者。实体Game与其他实体有一些关系ONE_TO_ONE (RuleGame)和ONE_TO_MANY (PublicZone和PrivateZones)。
我想要的是,只有游戏的所有者和用户与ROLE_ADMIN和ROLE_STAFF能够编辑游戏和它的关系。
换句话说,就像一个社交网络,只有我和管理员可以编辑我的个人资料,但我不能编辑其他用户的个人资料。
当然,我可以在@Service中创建自己的逻辑,并在这些实体(Game, PublicZone和PrivateZones)的控制器的每个"更新"方法中调用它并检查这一点,但我想知道是否有更好的方法去。
我正在阅读审计,像Hibernate Envers,但它是类似维基的软件,记录谁添加/更新/删除,所以它不适合我需要的。
我正在使用Spring 4.1.6, Spring Data Jpa 1.8.0, Spring Security 4和Hibernate 4.3.8
欢迎提出任何建议!
您将希望将spring-data-jpa审计与spring security等安全框架一起使用。这将允许在创建和修改记录时自动添加用户名,而无需您自己进行额外的逻辑操作。