本文最后更新于 2024-04-01,欢迎来到我的Blog! https://www.zpeng.site/

Spring Security简单介绍

1.简介

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是为Java应用程序提供全面的安全解决方案,包括身份验证、授权、防止跨站请求伪造(CSRF)等。Spring Security基于Spring框架,可以轻松地与Spring Boot、Spring MVC等其他Spring项目集成。

2.主要功能

  1. 认证(Authentication):认证是确认用户身份的过程,通常通过用户名和密码进行验证。

  2. 授权(Authorization):授权是在用户成功认证后,确定用户可以访问哪些资源或执行哪些操作的过程。

  3. 安全性上下文(Security Context):在Spring Security中,安全性上下文是一个线程局部变量,用于存储当前用户的认证信息和授权信息。

  4. 过滤器链(Filter Chain):Spring Security使用一系列过滤器来处理HTTP请求,这些过滤器组成一个过滤器链。

  5. 安全配置(Security Configuration):Spring Security的配置是通过实现WebSecurityConfigurerAdapter接口或继承WebSecurityConfigurerAdapter类来完成的。

3使用

3.1controller

新建controller.HelloController类

package com.example.springsecurity.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }

}

运行,然后浏览器访问如下,测试SpringBoot工程有没有搭建成功

http://localhost:8080/hello

3.2依赖

在pom.xml添加如下

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

重新运行引入依赖后我们在尝试去访问之前的接口就会自动跳转到一个SpringSecurity的默认登录页面,默认用户名是user,密码会输出在控制台。必须登录之后才能对接口进行访问。

3.3访问

http://localhost:8080/hello就会自动跳到http://localhost:8080/login

在idea控制台查看登录的密码,用户名是user

默认的退出登录接口如下

http://localhost:8080/logout