一、什么是Shiro

  Apache Shiro是Java的一个安全(权限)框架

  作用:认证、授权、加密、会话管理、与web集成、缓存等

  下载地址:http://shiro.apache.org/download.html

二、Shiro的架构

  1)subject:可以与应用交互的“用户”

  2)SecurityManager:相当于SpringMVC中的DispatcherServlet;是Spring的心脏,交互都由其控制。管理所有的subject且负责进行认证、授权、会话及缓存的管理。

  3)Authenticator:负责subject认证,是一个扩展点,可自定义实现;可以使用认证策略(Authentication Strategy)即什么情况下算用户通过了认证。

  4)Authorizer:授权器。决定是否有权限进行相应的操作。控制用户可以访问的有哪些

  5)Realm:可以有一个或者多个,可以认为是安全实体数据源,即用于获取安全实体的,可以是JDBC实现,也可以是内存实现等等,由用户提供。

  6)SessionManager:管理Session生命周期的组件。而Shiro并不仅仅可以在Webh环境,也可以用在普通的JavaSE环境

  7)CacheManager:缓存控制器,用来管理如用户、角色、权限等的缓存

  8)Cryptography:密码模块,Shiro提高了一些常见的加密组件用于如密码加密/解密

三、谈谈一些关键的位置

这里以结合springboot与mybatis的代码为例

        <!-- shiro与spring整合的依赖 -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <!-- ali的数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- springboot的mybatis启动器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
    </dependencies>
<!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <!-- springboot的web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
相关依赖

相关文章:

  • 2022-12-23
  • 2021-06-22
  • 2021-11-04
  • 2021-12-21
  • 2021-08-08
  • 2021-05-29
  • 2022-12-23
  • 2021-09-10
猜你喜欢
  • 2021-08-14
  • 2021-08-29
  • 2022-01-14
  • 2021-05-29
  • 2021-06-14
  • 2021-10-09
相关资源
相似解决方案