对令牌的有效性进行校验,只需要实现ReactiveAuthenticationManager这个接口,其中authenticate进行校验,主要逻辑:根据tokenStore解析JWT令牌,然后对其中的过期时间、签名进行校验。代码如下:
第一处的代码主要是解析令牌的基本想信息,比如令牌的类型,过期时间
第二处的代码是解析令牌携带的用户身份信息,比如用户的用户名…
木谷博客系统中的鉴权仅仅是针对接口,其他的一些系统有别的资源,比如前端的按钮、页面。。。
鉴权只需要实现ReactiveAuthorizationManager这个接口,实现其中的check方法。
自定义com.mugu.blog.gateway.config.JwtAuthorizationManager,主要逻辑如下:
-
从redis中获取该接口所对应的角色集合(这个在认证中心那一节将接口、角色对应关系加载到Redis)
-
解析令牌中的角色集合
-
接口所需的角色集合和令牌的角色集合比对,有交集则通过认证(超管root用户直接放行)
木谷博客系统目前未登录的用户是可以直接访问的,因此无需鉴权,将前端涉及到的接口设置到白名单即可。
白名单只需要在配置文件中配置即可,前缀为:oauth.server.ignore