Spring MVC + Hibernate列表对象并检查权限



我正在使用Spring MVC和Hibernate。

假设我们有控制器操作

@GetMapping("/user/remove")
public String removeAction(@ModelAttribute(value = "user_id") User user, RedirectAttributes redirectAttributes) {
    ...
}
是否可以

应用一些规则来检查用户是否可以删除该用户?例如,具有角色ROLE_ADMIN的用户可以删除所有用户,具有角色ROLE_USER的用户可以删除由他们自己创建的用户。

第二个问题 当具有角色ROLE_USER的用户列出所有用户时,是否可以在 Hibernate 级别过滤该列表,而无需迭代所有用户并检查谁创建了该用户?

最后一个问题。要删除操作,我正在传递user_id。可以在不调用UserService的情况下从数据库中检索该用户,如果所有权限都正常,则希望该用户对象在该删除操作中可用。

Spring 有一个注释类型安全性,可用于您的第一个问题,尽管您已经为角色设置了用户,请参阅方法 @Secured("ROLE_ADMIN") 的链接注释类型安全

您可能需要为数据库条目设置一些额外的逻辑以显示谁创建了用户,您可能已经完成了此操作,这将允许您根据创建者将列表分开,也许可以选择用户名和角色,这可能有助于问题 2。问题 3 您可以使用 Jstl 连接到您的数据库甚至 JQuery,告诉我们更多关于您的环境设置的信息,希望这能为您提供一些方向。快乐的编码

一种选择是使用@RolesAllowed@Secured注释。根据这篇文章,两者本质上做同样的事情

它们可以在类级别或方法级别应用。

最新更新