当前位置:   article > 正文

SpringBoot集成security(1)|(security入门)

springboot集成security

SpringBoot集成security(1)|(security入门)


章节
第一章链接: SpringBoot集成security(1)|(security入门)
第二章链接: SpringBoot集成security(2)|(security自定义配置)
第三章链接: SpringBoot集成security(3)|(security的前后端分离登录以及响应处理)
第四章链接: SpringBoot集成security(4)|(security基于JWT实现前后端分离自定义登录)

前言

最近项目上经常遇到需要对接第三方登录认证、授权第三方等问题,本着一劳永逸的心里,决定攻克一下springsecurity知识点,本系列文章将会介绍springsecurit从入门到深入了解,并能够在项目中实际运用。本系列文章大致分为几个阶段,第一阶段了解security,第二阶段实现在springboot中集成登录,第三阶段接入Oauth2、JWT,第四阶段实现第三方授权登录等。

一、Spring Security是什么?

Spring Security是一个提供身份验证,授权和保护以防止常见攻击的框架。凭借对命令式和响应式应用程序的一流支持,它是用于保护基于Spring的应用程序的事实上的标准。Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的安全管理

二、security集成springboot

1.依赖引入

第一步需要引入springboot以及security相关依赖,其他依赖例如swagger、lombok等一些工具依赖没有放上来

	<!--springboot相关依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.7</version>
        <relativePath/>
    </parent>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--security引入-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

2.编写测试接口

提供一个测试接口用于验证security

@Api(tags = {"演示相关接口"})
@RestController
@RequestMapping("/demo")
public class DemoCtrl {

    @ApiOperation(value = "获取接口", notes = "获取接口")
    @GetMapping(value = "/get")
    public ResponseHandle success() {
        return ResponseHandle.SUCCESS("获取数据成功");
    }

}

3.服务启动日志分析

1、springboot服务集成之后日志会打印一个Using generated security password: 7e2cf26c-1bff-4e27-9278-f5314c2f1f79,这个密码就是security的user用户默认的密码,每次启动都会改变

2、还会打印一个DefaultSecurityFilterChain信息,该信息表示引入security依赖后springboot会默认加载一个springsecurity的过滤器链,该默认的过滤器会阻止没有认证的访问请求

在这里插入图片描述

4.调用接口验证

在浏览器访问接口http://localhost:8080/demo/get,会跳转到http://localhost:8080/login页面,在登录页面输入user用户以及控制台打印的默认密码,会显示访问成功。

在这里插入图片描述

5.用户配置

实际使用的时候默认用户密码是变动的,这肯定不符合我们的要求,是否有其他方式来初始化用户呢?于是翻阅了文档,security提供了多种用户配置,下面我们来介绍当前简单模式下的简单配置,在yml配置文件中添加如下配置

spring:
  security:
    user:
      name: admin
      password: 123456
      roles: admin

结果:重启服务,日志没有打印默认密码,访问还是会跳到登录页,这个时候输入配置的用户密码即可访问

总结

到此springboot集成了security,并且security已经能够安全的保护我们的接口不被无认证请求访问。并且能够配置用户。

第一章链接: SpringBoot集成security(1)|(security入门)
第二章链接: SpringBoot集成security(2)|(security自定义配置)
第三章链接: SpringBoot集成security(3)|(security的前后端分离登录以及响应处理)
第四章链接: SpringBoot集成security(4)|(security基于JWT实现前后端分离自定义登录)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/790468
推荐阅读
相关标签
  

闽ICP备14008679号