【SSM】JWT+Shiro实现权限登录
- 引入依赖
(1)引入jwt依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.3.0</version>
</dependency>
<!-- java开发JWT的依赖jar包。 -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
(2)引入shiro依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.4.0</version>
</dependency>
(3)跨域依赖
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
<!-- 跨域依赖 -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.9</version>
</dependency>
- 配置xml
(1)配置web.xml
- 配置shiro过滤器
- 解决跨域
(2)配置shiro.xml
- 加密算法
- Realm认证
- 权限管理器
- shiro生命周期处理器
- shiro过滤器 - 配置OAuth2Filter过滤器
判断token是否过期或是否合法 - 配置MyRealm
授权 :
- 获取登录成功的账户名
- 根据对应账户id查询出对应账户的权限
认证登录:对密码加密 - 配置JwtUtils工具类
- 创建token
- 验证jwt
- 解析jwt - 跨域配置Spring_MVC.xml
配置跨域解决方案 - 登录
登录成功后,后端生成token令牌,通过响应头返回给前端