授权源码首先给当前客户端添加一个权限值,然后获取令牌并访问资源服务器。
从代码中可以看到,Oauth2的authorities对应了Security中的角色编码值。可用通过配置Oauth2客户端的角色,然后使用表达式clientHasAnyRole对授权进行控制。支持对自己的模板或者整站源码添加域名授权,支持在线查询是否为正版授权。
从字面上来看是授权的意思,在之前我们分析了可以通过resourceId和scope进行授权。通过以上分析,原来authorities和scope一样,都是方法级别的权限控制。区别在于scope可以通过用户自己选择授权客户端拥有哪些权限,而authorities是定死的。
相关知识
源授权是一款全新架构的授权系统.采用ThinkPHP 5.0开发。
内置各种强大的功能,邮件管理,腾讯云短信、里云短信等后台强大简洁,使用方便快捷。
在整个过滤器链中, FilterSecurityInterceptor是来处理整个用户授权流程的, 也是距离用户API最后一个非常重要的过滤器链,所以下面我们主要针对用户授权来看下源码是如何实现的?
AffirmativeBased(基于肯定)的逻辑是: 一票通过权
ConsensusBased(基于共识)的逻辑是: 赞成票多于反对票则表示通过,反对票多于赞成票则将抛出AccessDeniedException
UnanimousBased(基于一致)的逻辑: 一票否决权
1)FilterSecurityInterceptor
2)AbstractSecurityInterceptor的beforeInvocation方法
3)AffirmativeBased的decide方法
4)ExceptionTranslationFilter
5)handleSpringSecurityException方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)