springboot整合shiro之基本原理[亲测实现]

本文介绍了SpringBoot中集成Shiro的基本原理和实现步骤,包括Maven配置、核心概念和主要类。重点讲解了自定义Realm的实现和shiroConfig配置,涉及权限认证与身份认证的重载方法,以及Shiro过滤器的设置和MD5加密。最后总结了Shiro在认证和权限分配方面的作用。
摘要由CSDN通过智能技术生成

最近学习了模仿制作天猫商场,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用



一 概述
1 maven配置
 <dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-spring</artifactId>
  <version>1.3.2</version>
 </dependency>
2 核心概念
Subject
代表当前正在执行操作的用户,但Subject代表的可以是人,也可以是任何第三方系统帐号。当然每个subject实例都会被绑定到SercurityManger上。
SecurityManger
SecurityManager是Shiro核心,主要协调Shiro内部的各种安全组件,这个我们不需要太关注,只需要知道可以设置自定的Realm。
Realm
用户数据和Shiro数据交互的桥梁。比如需要用户身份认证、权限认证。都是需要通过Realm来读取数据。
3 主要类

   springboot中集成shiro相对简单,只需要两个类:一个是shiroConfig类,一个是CustonRealm类。

ShiroConfig类
顾名思义就是对shiro的一些配置,相对于之前的xml配置。包括:过滤的文件和权限,密码加密的算法,其用注解等相关功能。
CustomRealm类
自定义的CustomRealm继承AuthorizingRealm,用来实现认证和权限分配,并且重写父类中的doGetAuthorizationInfo(权限相关)、doGetAuthenticationInfo(身份认证)这两个方法。
二 代码实现
1 自定义Realm

   UserService的实现参考我的下一篇文章springboot整合shiro之数据库实现[dbReaml实现]

public class CustomRealm extends AuthorizingRealm {
   

    @Autowired
    UserService userService;

	/**
	* 进行权限分配
	*/
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
   
        int userId = (Integer) SecurityUtils.getSubject().getPrincipal();
        List<String> roles = userService.getRolesByUser(userId);
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        Set<String> rolesSet = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值