1 业务流程
方法授权要完成的是资源服务根据jwt令牌完成对方法的授权,具体流程如下:
1、生成Jwt令牌时在令牌中写入用户所拥有的权限
我们给每个权限起个名字,例如某个用户拥有如下权限:
course_find_list:课程查询
course_pic_list:课程图片查询
2、在资源服务方法上添加注解PreAuthorize,并指定此方法所需要的权限
例如下边是课程管理接口方法的授权配置,它就表示要执行这个方法需要拥有course_find_list权限
@PreAuthorize("hasAuthority('course_pic_list')")
@Override
@GetMapping("/coursepic/list/{courseId}")
public CoursePic findCoursePic(@PathVariable("courseId") String courseId) {
return courseService.findCoursePic(courseId);
}
3、当请求有权限的方法时正常访问
4、当请求没有权限的方法时则拒绝访问
2 服务授权
在服务的配置文件里面填叫@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)//激活方法上的,说明这个服务被调用需要授权
@Configuration
@EnableResourceServer
@EnableGlobalMethodSecuri