SpringBoot整合Shiro编程步骤

第一步:在controller层登录

在controller层登录,传入username与password
用SecurityUtils类的getSubject方法获取一个新建的Subject
把name与password封装成一个token
用subject.login(token)执行登录方法,如果有异常会catch住
SpringBoot整合Shiro编程步骤_第1张图片

第二步:在realm里面授权和认证

新建UserRealm类继承AuthorizngRealm,自动实现授权和认证两个方法:
SpringBoot整合Shiro编程步骤_第2张图片

授权代码实现SpringBoot整合Shiro编程步骤_第3张图片

先把用户信息用securityUtils.getSubject方法取出来放在subject里面,
然后用取出来的subject.getPrincipal方法获得这个类的主体也就是user,
用userService里面的findByID或者FindByName方法获取这个数据库里的dbuser
把这个数据库里的dbuser获取到的权限permission ,用addPermission方法set到simpleAuthorizationInfo当中并且返回,返回AuthorizationInfo类授权方法完成

证方法实现

SpringBoot整合Shiro编程步骤_第4张图片
新建一个SimpleAuthenticINfo 类
用传入参数强转成UserNamePasswordToken对象
用userService在数据库中查询传入参数的用户,没有返回null
最后返回新建的SimpleAuthenticInfo,方法里传入参数(第一个可以是username,也可以直接是user,第二个参数为password,后面的参数为盐值)

第三步:在ShiroConfig里配置

新建ShiroConfig类,用@Configration类注解
SpringBoot整合Shiro编程步骤_第5张图片
在类里面建三个方法:

第一个方法是创建realm

SpringBoot整合Shiro编程步骤_第6张图片
返回一个上一步建的UserRealm对象

第二个方法是创建安全管理器

SpringBoot整合Shiro编程步骤_第7张图片
新建DefaltWebSecurityManager,把上一个的realm设置到里面,返回securityManager

第三个方法是最重要的创建shiroFilterFactoryBean方法SpringBoot整合Shiro编程步骤_第8张图片

这个方法的作用是设置权限过滤器
新建一个ShiroFilterFactoryBean,把上一步的securityManager设置到里面
建LinkedHashMap类,把权限设置到map里面,在设置一些默认跳转页面,最后把map设置到类里面




具体案例请参看下面博客:具体案例

你可能感兴趣的:(#,Shiro,#,SpringBoot,整合Shiro步骤,整合Shiro)