1 简介
X.1 概述
- SpringSecurity功能比Shiro强大,如果是单应用小项目建议用Shiro但如果是微服务则用SpringSecurity+JWT。
- JWT可以将token(包含用户信息)传到其它微服务从而可以获取用户登录信息,而Shiro需要利用token查询数据库获取用户信息。
- JWT生成的token包含三个部分别是“头.负载.签名”,头中放加密方式、体中放用户信息、尾中放头和体的签名信息,这样分别把“头.负载.签名”进行base64编码就形成三段式token;只需要在授权认证那里校验一次,然后方便在其它微服务中传递token这样不需要查询数据库就可以获取用户信息。
X.2 Shiro和SpringSecurity授权认证流程对比
Shiro
- 登录:登录成功后会返回token和当前用户所有角色对应的菜单权限信息用于页面渲染对应菜单按钮。
- 访问:访问接口资源时请求会先到安全框架,如果没有携带token就返回401前端跳转到登录页面,如果有携带token就到认证接口验证token是否过期,查询用户信息验证是否被禁用,用户账号没出现异常就将当前用户信息和token放到