按照前面得理论,我们完成了Token
的纷发,权限角色的校验,但是在访问接口的时候发现,当前的系统不能限制权限的访问
Spring
官方文档 11.3.3。方法安全性表达式 通过启用权限角色注解
@PreAuthorize
,@PreFilter
,@PostAuthorize
和@PostFilter
xml
启动使用
<global-method-security pre-post-annotations="enabled"/>
注解启用:@EnableGlobalMethodSecurity(prePostEnabled = true)
/**
* 添加用户
*
* @param user 用户信息
* @return
*/
@PreAuthorize("hasAnyRole('ADMIN')")
@PostMapping("save")
public R save(@NotNull User user) {
userService.insert(user);
return new R(HttpStatus.HTTP_OK, "保存用户成功");
}
@PreAuthorize("hasAnyRole('ADMIN')")
标识当前的接口只有ROLE_ADMIN
才能访问。
受公司项目所用的开发框架启发,结合之前我们的各种猜想,也不难理解这个需要怎么做,既然将权限交给了SpringSecurity
,那肯定是从SpringSecurity
中获取。
SpringSecurity
管理?SecurityContextHolder.getContext().setAuthentication(Authentication authentication);
到此我们算是完成了前后端分离的简单权限角色校验,在这个代码的完善过程中,我有一个很明显的感觉,Spring
框架的优美和强大,他很难理解,很难上手,很难懂。不过那也正是其优美所在,一起加油吧!骚年!