9.Springboot整合Security很全
创始人
2024-03-16 13:06:32
0次

1.什么是Security

SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。

它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。

2.Spring Security核心功能?

(1)认证(你是谁,用户/设备/系统)

(2)验证(你能干什么,也叫权限控制/授权,允许执行的操作)

(3)攻击防护(防止伪造身份)

3.Spring Security原理技术

Filter、Servlet、Spring DI、SpringAOP.

在 Spring Framework 基础上,Spring Security 充分利用了依赖注入(DI,Dependency Injection)和面向切面编程(AOP)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。它是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持。

4. springboot整合Security(简单版)

1.maven配置

		org.springframework.bootspring-boot-starter-web2.7.2org.springframework.bootspring-boot-starter-test2.7.2org.springframework.bootspring-boot-starter-security2.7.2

2.yml 配置

  security:user:name: userpassword: 123456

注意:这个配置如果没有的话,控制台会自动打印下面的密码:默认用户名是user

Using generated security password: 51e13039-b93f-4f91-90fb-58c18f6ff8ea

3.测试

我这里上一篇写了整合swagger,所直接访问了swagger接口:
会自动跳转到:http://localhost:8081/login

在这里插入图片描述
登录进来了:
在这里插入图片描述

5.springboot整合Security(内存版,改吧改吧就成数据库了)

1.maven引用 直接用上边简单版的就行

2.注释掉yml配置的

#  security:
#    user:
#      name: user
#      password: 123456

3.增加WebSecurityConfig 配置类

package com.springboot.test.config.security;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;/*** @author cf* @date 2022/12/4 11:44* @description*/
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {/** 配置为从内存中进行加载认证信息.* 这里配置了两个用户 admin和user*/auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder().encode("123456")).roles();auth.inMemoryAuthentication().withUser("user").password(passwordEncoder().encode("123456")).roles();}@Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}}

4.测试一下 按照上面的重启 请求接口就好了

6.Security优点

(1)Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便。

(2)Spring Security功能丰富,例如安全防护方面。

(3)Spring Security社区资源相对丰富。

(4)和Spring Boot,Spring Cloud,三者可以无缝集成。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...