Spring Boot 整合 Shiro

Spring Boot 整合 Shiro

1. Shiro 简介

  1. Apache Shiro 是一个强大的简单易用的 Java 安全框架,主要用来更便捷的认证、授权、加密、会话管理、与 Web 集成、缓存等;
  2. Shiro 使用起来小而简单;
  3. Shiro 依赖性低,不需要任何框架和容器,Shiro 不仅可以实现 Web 应用的权限管理,还可以实现 C/S 系统,分布式系统权限管理;
  4. Shiro 属于轻量框架。

2. Shiro 核心功能

1. 主要功能

Shiro 主要有三大功能模块:

  1. Subject:主体,代表了当前 “用户”;
  2. SecurityManager:安全管理器,管理所有 Subject,所有与安全有关的操作都会与 SecurityManager 交互,可以配合内部安全组件(类似于 SpringMVC 中的 DispatcherServlet);
  3. Realms:用于进行权限信息的验证,Shiro 从从 Realm 获取安全数据,可以把 Realm 看成 DataSource,即安全数据源,一般需要自己实现。
2. 细分功能
  1. Authentication:身份认证/登录,即账号密码验证,验证用户是不是拥有相应的身份;
  2. Authorization:授权,即角色或者权限验证,验证某个已认证的用户是否拥有某个权限;
  3. Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;
  4. Cryptography:加密,保护数据的安全性,如密码加密等;
  5. Web Support:Web 支持,可以非常容易的集成到 Web 环境;
  6. Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;
  7. Concurrency:Shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;
  8. Testing:提供测试支持;
  9. Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;
  10. Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。

3. Spring Boot 整合 Shiro 流程

  1. 导入依赖

    <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring-boot-web-starter -->
    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-spring-boot-web-starter</artifactId>
        <version>1.7.0</version>
    </dependency>
    
  2. 实体类

    使用 Lombok 来简化开发

    /**
     * @author beastars
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
         
        private int id;
        private String name;
        private String pwd;
        private String perms;
    }
    
  3. 根据用户名查询数据库

    此处使用 Mybatis-plus 来帮助查询

    使用 Mybatis-plus 需要在启动类上添加@MapperScan("com.lzq.mapper")的注解,来扫描 Mapper 类

    UserMapper:

    /**
     * @author beastars
     */
    public interface UserMapper extends BaseMapper<User> {
         
    }
    

    UserService:

    /**
     * @author beastars
     */
    @Service
    public class 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值