您当前的位置: 首页 >  spring

梁云亮

暂无认证

  • 4浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringBoot整合Shiro编程步骤

梁云亮 发布时间:2020-09-12 14:03:08 ,浏览量:4

第一步:在controller层登录

在controller层登录,传入username与password 用SecurityUtils类的getSubject方法获取一个新建的Subject 把name与password封装成一个token 用subject.login(token)执行登录方法,如果有异常会catch住 在这里插入图片描述

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

新建UserRealm类继承AuthorizngRealm,自动实现授权和认证两个方法: 在这里插入图片描述

授权代码实现在这里插入图片描述

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

证方法实现

在这里插入图片描述 新建一个SimpleAuthenticINfo 类 用传入参数强转成UserNamePasswordToken对象 用userService在数据库中查询传入参数的用户,没有返回null 最后返回新建的SimpleAuthenticInfo,方法里传入参数(第一个可以是username,也可以直接是user,第二个参数为password,后面的参数为盐值)

第三步:在ShiroConfig里配置

新建ShiroConfig类,用@Configration类注解 在这里插入图片描述 在类里面建三个方法:

第一个方法是创建realm

在这里插入图片描述 返回一个上一步建的UserRealm对象

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

在这里插入图片描述 新建DefaltWebSecurityManager,把上一个的realm设置到里面,返回securityManager

第三个方法是最重要的创建shiroFilterFactoryBean方法在这里插入图片描述

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

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

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0397s