SpringSecurity6从入门到实战之引言和基本概念

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-应用监控,每月50GB免费额度
简介: 《SpringSecurity6从入门到实战》介绍了Spring Security这一强大的Java安全框架,主要用于保护Spring应用程序的安全。它提供认证和授权功能,支持多种认证方式,并具备高度可定制性。文章阐述了权限管理的重要性,包括用户认证(验证用户身份)和用户授权(控制用户访问权限)。相较于其他如Shiro和Sa-Token的安全框架,Spring Security因与Spring生态的深度整合及对OAuth2的支持,常成为微服务项目的选择。

SpringSecurity6从入门到实战之引言和基本概念

前言

在当今数字化时代,随着网络应用的日益普及,保护用户数据和系统安全变得至关重要。作为Java开发社区的中坚力量,Spring框架提供了一整套解决方案来构建企业级应用程序。然而,随着应用程序的复杂性增加,确保应用程序的安全性也成为开发过程中的一个主要挑战。正是在这种背景下,Spring Security应运而生,它不仅为开发者提供了一个全面的安全解决方案,而且通过其模块化和可扩展的设计,使得开发者能够轻松地将其集成到现有的Spring应用程序中。

什么是SpringSecurity

Spring Security是一个功能强大且高度可定制的Java安全框架,它用于保护基于Spring的应用程序。它重点提供了认证(Authentication)和授权(Authorization),并且可以通过插件的方式轻松扩展以满足安全需求。Spring Security不仅支持多种认证方式,如表单登录、HTTP基本认证、OAuth2等,还提供了对Web应用程序的保护,包括CSRF防护、会话管理、密码加密等。

官网:[https://spring.io/projects/spring-security]


以上来自官网下的定义

总的来说,SpringSecurity是Spring全家桶中的一个功能强大,可进行身份验证(认证)访问控制(授权)的框架,主要实现系统中的权限管理

什么是权限管理

权限管理包括 用户认证用户授权 两部分,简称认证授权。

一般来说,Web应用的安全性包括 用户认证用户授权两个部分,这两点也是SpringSecurity的主要核心内容。

  • 用户认证Authentication
    用户认证,就是验证一个用户是否是合法身份,能否访问该系统的过程。最简单的用户认证方式就是 要求用户输入的用户名和密码,系统通过用户名和密码 来校验用户身份是否合法。常见的认证方式还有 基于生物学特征的身份验证,需要录入指纹、人脸识别等;还有要求通过硬件Key等刷卡的系统,需要刷卡。
  • 用户授权Authorization
    用户授权,就是控制一个合法用户有权限执行哪些操作,也就是访问控制,控制谁能访问哪些资源。用户在身份认证后,需要分配权限方可访问系统的资源,对于没有权限的资源 用户是不能访问的。如,购物网站 买家登录系统能查询、加购物车、下订单,卖家登录后可以添加商品、修改价格、发货,卖家能做的操作买家是不能操作的,这就是不同的人有不同的权限,做不同的事情。

简单来说:


  • 用户认证,就是检查用户能否进入系统。
  • 用户授权,就是用户进入系统后 能操作哪些功能。

安全框架的对比

在 Java EE 企业级开发中,安全管理框架目前比较常见的有:

  • Shiro
  • 优点:轻量级的安全管理框架(Apache提供)、简单(把复杂的事情变简单)、易于集成、也可以在JavaSE环境中使用等。
  • 缺点:在微服务时代,Shiro 就显得力不从心了,在微服务面前和扩展方面,无法充分展示自己的优势。
  • Spring Security
  • 优点:作为 Spring 家族中的一员,和 Spring 等技术可以实现无缝整合。同时对 OAuth2 有着良好的支持,再加上Spring Cloud对 Spring Security 的不断加持(推出 Spring Cloud Security ),让 Spring Securiy 不知不觉中成为微服务项目的首选安全管理方案。
  • 缺点:重量级
  • Sa-Token
  • 轻量级的Java权限认证框架,主要解决登录认证、权限认证、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。Sa-Token使用简单,功能强大,只需一行代码就可以完成会话登录或校验登录状态。Sa-Token更适合于前后台分离架构,支持多种模式和场景的token生成和验证。
  • Sa-Token是一个相对较新的框架,但已经获得了不少关注和好评。
  • 开发者自定义
  • 即程序员开发实现权限管理,基于角色的访问控制(Role-Based Access Control 简称 RBAC)。但是一个系统的安全,不仅仅是登录和权限控制这么简单,我们还要考虑种各样可能存在的网络攻击以及防御策略,从这个角度来说,开发者自己实现安全管理也并非是一件容易的事情,只有大公司才有足够的人力物力去支持这件事情。
相关文章
|
7月前
|
安全 Java 数据库
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
|
1月前
|
JavaScript Java API
深入浅出后端开发:从基础到进阶
本文将带你走进后端开发的神秘世界,从最基础的概念讲起,逐步深入到高级技术的应用。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和实用的技巧,帮助你在后端开发的道路上更进一步。我们将涵盖后端开发的基本概念、常用技术栈、数据库管理、API设计以及性能优化等关键领域,让你全面了解后端开发的方方面面。
|
5月前
|
存储 网络协议 安全
IT入门知识第一部分《IT基础知识》(1/10)
IT入门知识第一部分《IT基础知识》(1/10)
114 0
|
7月前
|
存储 安全 Java
【SpringSecurity】快速入门—通俗易懂
【SpringSecurity】快速入门—通俗易懂
73 0
|
Kubernetes 监控 负载均衡
【K8S系列】第一讲:基础概念入门
【K8S系列】第一讲:基础概念入门
78 0
|
前端开发 Java Maven
“深入探究SpringMVC的工作原理与入门实践“
“深入探究SpringMVC的工作原理与入门实践“
86 0
|
Kubernetes 监控 负载均衡
【K8S系列】基础概念入门
与VM虚拟机相比,容器镜像的创建更加容易。提供可靠且频繁的容器镜像构建/部署,并使用快速和简单的回滚(由于镜像不可变性)。在build或者release阶段创建容器镜像,使得应用和基础设施解耦。在本地或外网(生产环境)运行的一致性。可以在 Ubuntu、RHEL、 CoreOS、on-prem、Google Container Engine或其它任何环境中运行。应用程序分为更小的、独立的部件,可以动态部署和管理。资源隔离更高效。...
145 0
【K8S系列】基础概念入门
|
XML JSON Java
SpringBoot 基础知识汇总 (史上最全)
SpringBoot常用注解,起步依赖starter,配置文件格式,yml优先级,SpringBoot打包运行,starter和parent的区别,Restful接口请求风格。
268 0
SpringBoot 基础知识汇总 (史上最全)
|
运维 负载均衡 Java
SpringCloud学习系列之一:基础概念介绍
本系列博文主要为SpringCloud学习的博文系列。 到底什么是微服务 SpringCloud组件介绍
SpringCloud学习系列之一:基础概念介绍
|
监控 Cloud Native Java
【SpringBoot 2】(一)基础知识了解学习
【SpringBoot 2】(一)基础知识了解学习
155 0