对于我们系统使用的接口,做了动态获取菜单,但我们的接口没有做API接口动态权限校验。如果不做API接口动态权限校验,在用户登录后,他可以拿到本地token使用postman等工具,可以操作我们的那些没有显示给用户的接口。
一开始是想使用Spring Security作为接口权限校验,但是Spring Security提供的注解,使用的是硬编码。就是
@PreAuthorize("hasRole('root')")
我们如果某天想让某个接口,改变角色访问权限,或添加访问角色等等,我们必须修改源码,再重新发布。这种明显是不合适的。我在网上查找相关资料,想到的就是在系统添加接口表和接口角色关联表,维护接口和角色,然后再通过Filter拦截器拦截每次用户操作通过用户查询相应的角色,再通过角色查询是否有操作该接口权限。