Oauth2 用户授权

我们可以把用户的权限写在令牌的载荷里

这是一个解析完的令牌,其中的authorities就是权限

{"scope":["app"],"name":null,"id":null,"exp":1610927779,"authorities":["seckill_list","goods_list"],"jti":"0beaa6b1-ab5c-4874-a938-8fce91e86654","client_id":"changgou","username":"heima"}

 

这个权限不是我自己加的,而是在changgou-user-oauth中的config中有一个类UserDetailsServiceImpl

其中有个loadUserByUsername的方法,通过创建要给UserJwt完成了授权,目前原理不清楚,推测是oauth2的内部机制

 

在配置了Oauth2的微服务中,其配置类ResourceServerConfig有一个类注解@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)

这个注解的作用是开启业务方法上的@PreAuthorize("hasAuthority('admin')")注解

@PreAuthority注解用来声明调用这个方法必须有什么权限或角色,上边这个就要求有admin权限

1

1

1

1

 

上一篇:OAuth2


下一篇:OAuth2 简单介绍及密码模式