在我的生产环境中,所有用户都具有USER角色,并且可以访问所有REST端点。
默认情况下,用户可以调用任何REST端点。但我需要实施一个2级禁止系统来惩罚破坏规则的用户,即禁止访问级别1的3个REST端点,并禁止访问级别2的~50个端点。
据我所知,我需要实现特定角色DISABLE_X和DISABLE_Y并使用@PreAuthorize
注释保护目标端点,因此如果用户hasRole()
DISABLE_COMMENTS
或DISABLE_ALL
他无法访问这些端点:
@PreAuthorize(!hasRole(DISABLE_COMMENTS))
public ModelAndView postComment(...) {...}
就Spring Security而言,这是一种正确的方法吗?这种方法的缺点是什么?