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

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...