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,三者可以无缝集成。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...