当前位置: 首页 > news >正文

9.Springboot整合Security很全

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配置

		<!-- 初始化配置 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>2.7.2</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<version>2.7.2</version>
		</dependency>

		<!-- 集成security-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
			<version>2.7.2</version>
		</dependency>

2.yml 配置

  security:
    user:
      name: user
      password: 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 {
    @Override
    protected 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();
    }

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

相关文章:

  • java计算机毕业设计养生药膳推荐系统源程序+mysql+系统+lw文档+远程调试
  • 夜天之书 #67 为什么开源协议不授予商标权利?
  • [附源码]计算机毕业设计基于Springboot的花店售卖系统的设计与实现
  • 1796. 字符串中第二大的数字
  • 【JavaEE】认识多线程(一)
  • Python面向对象编程
  • 08_openstack之nova节点扩容
  • [附源码]JAVA毕业设计课程网站设计(系统+LW)
  • Redis03:Redis基础知识以及数据类型
  • 【大数据入门核心技术-Hadoop】Hadoop高可用集群搭建
  • Python学习----网络编程
  • Linux服务器上跑深度学习实验
  • JS力扣刷题经典100题——两数相加
  • 这一秒,困扰了程序员50年
  • 云服务器使用及Linux基本命令
  • [附源码]Python计算机毕业设计Django框架的食品安全监督平台的设计与实现
  • 基于粒子群算法的电力系统无功优化研究(IEEE14节点)(Matlab代码实现)
  • Java基于springboot+vue的防护用品销售购物商城系统 前后端分离
  • 浅谈降维实操,一种用于处理特征的方式——后附Python代码
  • 计算机毕业设计Java房产销售系统(源码+系统+mysql数据库+lw文档)
  • APP自动化测试系列之Appium介绍及运行原理
  • Nginx学习笔记
  • 蜣螂优化算法Dung beetle optimizer附matlab代码
  • 03-SpringBoot进阶
  • 英文Paper写作怎么确实合适的介词?
  • 代码提速100倍,怎么实现的?
  • 【C++】C++11新特性
  • 【面试】EntityFrameworkLinq面试题答案
  • 宝塔部署node项目
  • 配对交易之统计套利配对:协整(cointegration)
  • 湖南2021本科批(普通类历史类)第一次征集志愿投档分数线
  • 2022年甘肃高考482分能报什么大学 482分能上哪些院校
  • 2022年全国各大高校在山东招生计划及分数
  • 浙江有哪些师范大学,年浙江师范类大学分数线排名一览表
  • 武汉设计工程学院是几本
  • 2022感恩节放假吗 中国有哪些节日会放假
  • 12种新高考3+1+2选科组合分析 怎么选科好
  • 0基础艺考最容易过的专业有哪些 通过率最高的专业是什么
  • 体育高水平怎么报名
  • 浙江2022普通类第二段平行投档分数线是多少