SpringBoot整合Shiro
Shiro的特点
- 相对于SpringSecurity的API更易理解
- 身份认证简单,对角色权限控制简单
- 支持一级缓存
- 简单的密码加密API
- 可以独立运行,SpringSecurity需要Spring环境
shiro中的三大组件
- subject:表示待认证、授权的用户,subject中包装着用户信息
- securityManager:管理所有用户
- realm:数据源,(包括但不限于数据库、shrio.ini文件中数据、redis)
shiro的基本配置
- 使用@Configuration注解创建配置类
- 自定义realm
实现登录拦截
shiro内置过滤器种类:
* anon:无须认证即可访问
* authc:认证后访问
* user:必须拥有 记住我 权限才可以使用
* perms:有用对某个资源的权限才可以访问
* role:拥有某个角色的权限才可以访问
这里创建了Map集合实现过滤器
//设置无权限跳转的登录页面
filterFactoryBean.setLoginUrl(“/login”);
在登录的login方法中进行验证,无异常说明成功
可以在自定义realm中对用户名进行判断
实现授权操作
在配置类,配置拦截的路径,和未授权访问跳转页面
在登录认证的方法返回值中,return登录的user对象
从授权方法中获取user,并读取user中的权限字段,从而进行用户的权限赋值