在RBAC的权限管理框架下,Spring Security为我们提供了一个完善的解决方案。
而我看到的使用方式大多都是错误的。我们知道无论是基础框架和设计模式都是为了提供某一问题领域的通用解决方案,在权限管理的问题领域里,我们就需要确定权限管理的对象及相应的问题领域。这里就不展开讲了,只是介绍一下Spring Security提供的解决方案如何正确应用。
我们看到,在Spring Security文档上,有两个章节 授权HTTP请求 和 方法安全(Method Security),当然还有下面的其他权限领域,今天不展开讨论。
从以上的文档描述中, 我们在权限管理的基本问题域中 方法调用 和 Web请求 是两个不同的权限领域,而我看到的一些所谓后台管理框架中用到的都是 方法调用,利用@PreAuthorize一类的注解来实现,而他们实际要解决的权限领域是 Web请求。
个人总结:后台管理的框架中,我们要解决的是Web请求的权限控制,而方法调用级别的权限控制应该是和业务逻辑紧密相关的,我们在应用框架提供的解决方案时要符合相应的场景设计。