简介

Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。
一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。
一般Web应用的需要进行认证授权

  • 认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户
  • 授权:经过认证后判断当前用户是否有权限进行某个操作

而认证和授权也是SpringSecurity作为安全框架的核心功能。

构建SpringSecurity项目

  1. 构建SpringBoot项目
  2. 引入SpringSecurity依赖
    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-security</artifactId>
    4. </dependency>
    写一个Controller,运行项目,在浏览器输入地址会默认跳转到localhost:8080/login,这是SpringSecurity自带的登陆验证页面
    image.png
    默认密码在控制台有打印出来,账号是user。
    image.png
    必须登陆之后才能对接口进行访问,登陆后再看请求,会发现带有Cookie了
    image.png
    访问localhost:8080/logout,就直接退出登陆了
    image.png

    使用SpringSecurity案例的准备工作

    添加依赖

    1. <!--redis依赖-->
    2. <dependency>
    3. <groupId>org.springframework.boot</groupId>
    4. <artifactId>spring-boot-starter-data-redis</artifactId>
    5. </dependency>
    6. <!--fastjson依赖-->
    7. <dependency>
    8. <groupId>com.alibaba</groupId>
    9. <artifactId>fastjson</artifactId>
    10. <version>1.2.33</version>
    11. </dependency>
    12. <!--jwt依赖-->
    13. <dependency>
    14. <groupId>io.jsonwebtoken</groupId>
    15. <artifactId>jjwt</artifactId>
    16. <version>0.9.0</version>
    17. </dependency>
    18. <!--mybatis依赖-->
    19. <dependency>
    20. <groupId>org.mybatis.spring.boot</groupId>
    21. <artifactId>mybatis-spring-boot-starter</artifactId>
    22. <version>2.2.1</version>
    23. </dependency>
    24. <!--mysql依赖-->
    25. <dependency>
    26. <groupId>mysql</groupId>
    27. <artifactId>mysql-connector-java</artifactId>
    28. </dependency>

    工具类和配置类

    Redis操作工具类
    Redis序列化类
    网络响应工具类
    JWT工具类
    统一响应类
    Redis配置类

还有一些实体类,连接数据库查询的操作。这里就不一一写明实体类啊,mapper那些东西了
SpringBoot整合MyBatis