微服务认证方案
微服务认证参与者:
springcloud gateway、auth、system、redis
1、网关对于auth
a) 网关负责生成验证码,校验验证码(针对如下URL)
private final static String[] VALIDATE_URL = new String[] { "/auth/login", "/auth/register" };
b) 网关对于所有URL进行权限校验 ,如下白名单URL除外
- /auth/logout
- /auth/login
- /auth/register
2、网关校验token
是否合法、是否登录,通过的话 转发请求至后台服务,并携带着token,请求头里面还可以加入其他信息,例如用户名称、用户ID等等。
3、后台服务
如果请求头有token,则会判断其合法性、是否超时、获取loginuser信息到上下文环境,通过的话,更新登录超时事件,如果请求头没有header的话放行,进行下一步判断:
对于@RequiresPermissions 注解的方法校验是否具有权限;
对于@InnerAuth 注解的方法校验是否是内部服务调用,是的话直接放行(例如auth获取用户信息,直接feign内部调用)。
String source = ServletUtils.getRequest().getHeader(SecurityConstants.FROM_SOURCE);
posted on 2022-02-23 11:56 TrustNature 阅读(262) 评论(0) 编辑 收藏 举报