Spring Security介绍

这篇具有很好参考价值的文章主要介绍了Spring Security介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  一、Spring Security:

1、简介:Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。

(1)用户认证:指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。

Spring Security 框架支持主流的认证方式,包括 HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等。

(2)用户授权:指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。

Spring Security 提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。

2、结构:通过继承

org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter

实现权限配置,登录验证成功后初始化org.springframework.security.core.userdetails.UserDetails,存储当前登录用户。默认(可缺省)登录接口:/login

二、 spring security 依赖:

1、pom依赖:

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.14.RELEASE</version>
	</parent>
	
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
		</dependency>
	</dependencies>
 
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

2、springBoot 和 spring security 版本对应关系:

springboot 版本     spring security版本
2.3.12.RELEASE    5.3.9.RELEASE
2.3.11.RELEASE    5.3.9.RELEASE
2.3.10.RELEASE    5.3.9.RELEASE
2.3.9.RELEASE    5.3.8.RELEASE
2.3.8.RELEASE    5.3.6.RELEASE
2.3.7.RELEASE    5.3.6.RELEASE
2.3.6.RELEASE    5.3.5.RELEASE
2.3.5.RELEASE    5.3.5.RELEASE
2.3.4.RELEASE    5.3.4.RELEASE
2.3.3.RELEASE    5.3.4.RELEASE
2.3.2.RELEASE    5.3.3.RELEASE
2.3.1.RELEASE    5.3.3.RELEASE
2.3.0.RELEASE    5.3.2.RELEASE
2.2.13.RELEASE    5.2.8.RELEASE
2.2.12.RELEASE    5.2.8.RELEASE
2.2.11.RELEASE    5.2.7.RELEASE
2.2.10.RELEASE    5.2.6.RELEASE
2.2.9.RELEASE    5.2.5.RELEASE
2.2.8.RELEASE    5.2.5.RELEASE
2.2.7.RELEASE    5.2.4.RELEASE
2.2.6.RELEASE    5.2.2.RELEASE
2.2.5.RELEASE    5.2.2.RELEASE
2.2.4.RELEASE    5.2.1.RELEASE
2.2.3.RELEASE    5.2.1.RELEASE
2.2.2.RELEASE    5.2.1.RELEASE
2.2.1.RELEASE    5.2.1.RELEASE
2.2.0.RELEASE    5.2.0.RELEASE
2.1.18.RELEASE    5.1.13.RELEASE
2.1.17.RELEASE    5.1.12.RELEASE
2.1.16.RELEASE    5.1.11.RELEASE
2.1.15.RELEASE    5.1.11.RELEASE
2.1.14.RELEASE    5.1.10.RELEASE
2.1.13.RELEASE    5.1.8.RELEASE
2.1.12.RELEASE    5.1.7.RELEASE
2.1.11.RELEASE    5.1.7.RELEASE
2.1.10.RELEASE    5.1.7.RELEASE
2.1.9.RELEASE    5.1.6.RELEASE
2.1.8.RELEASE    5.1.6.RELEASE
2.1.7.RELEASE    5.1.6.RELEASE
2.1.6.RELEASE    5.1.5.RELEASE
2.1.5.RELEASE    5.1.5.RELEASE
2.1.4.RELEASE    5.1.5.RELEASE
2.1.3.RELEASE    5.1.4.RELEASE
2.1.2.RELEASE    5.1.3.RELEASE
2.1.1.RELEASE    5.1.2.RELEASE
2.1.0.RELEASE    5.1.1.RELEASE
2.0.9.RELEASE    5.0.12.RELEASE
2.0.8.RELEASE    5.0.11.RELEASE
2.0.7.RELEASE    5.0.10.RELEASE
2.0.6.RELEASE    5.0.9.RELEASE
2.0.5.RELEASE    5.0.8.RELEASE
2.0.4.RELEASE    5.0.7.RELEASE
2.0.3.RELEASE    5.0.6.RELEASE
2.0.2.RELEASE    5.0.5.RELEASE
2.0.1.RELEASE    5.0.4.RELEASE
2.0.0.RELEASE    5.0.3.RELEASE
1.5.22.RELEASE    4.2.13.RELEASE
1.5.21.RELEASE    4.2.12.RELEASE
1.5.20.RELEASE    4.2.12.RELEASE
1.5.19.RELEASE    4.2.11.RELEASE
1.5.18.RELEASE    4.2.10.RELEASE
1.5.17.RELEASE    4.2.9.RELEASE
1.5.16.RELEASE    4.2.8.RELEASE
1.5.15.RELEASE    4.2.7.RELEASE
1.5.14.RELEASE    4.2.7.RELEASE
1.5.13.RELEASE    4.2.6.RELEASE
1.5.12.RELEASE    4.2.5.RELEASE
1.5.11.RELEASE    4.2.5.RELEASE
1.5.10.RELEASE    4.2.4.RELEASE
1.5.9.RELEASE    4.2.3.RELEASE
1.5.8.RELEASE    4.2.3.RELEASE
1.5.7.RELEASE    4.2.3.RELEASE
1.5.6.RELEASE    4.2.3.RELEASE
1.5.5.RELEASE    4.2.3.RELEASE
1.5.4.RELEASE    4.2.3.RELEASE
1.5.3.RELEASE    4.2.2.RELEASE
1.5.2.RELEASE    4.2.2.RELEASE
1.5.1.RELEASE    4.2.1.RELEASE
1.5.0.RELEASE    4.2.1.RELEASE
1.4.7.RELEASE    4.1.4.RELEASE
1.4.6.RELEASE    4.1.4.RELEASE
1.4.5.RELEASE    4.1.4.RELEASE
1.4.4.RELEASE    4.1.4.RELEASE
1.4.3.RELEASE    4.1.4.RELEASE
1.4.2.RELEASE    4.1.3.RELEASE
1.4.1.RELEASE    4.1.3.RELEASE
1.4.0.RELEASE    4.1.1.RELEASE
1.3.8.RELEASE    4.0.4.RELEASE
1.3.7.RELEASE    4.0.4.RELEASE

 三、核心组件:

Spring Security介绍,SpringSecurity+JWT+VUE,spring,java,后端

1、Authentication 认证:Authentication接口就是用来携带认证信息的。认证信息包括用户身份信息,密码,及权限列表等;

2、UsernamePasswordAuthenticationFilter:账号密码认证过滤器,用于认证用户信息,认证方式是由 AuthenticationManager 接口提供。

3、AuthenticationManager:认证管理器,是认证相关的核心接口,也是发起认证的出发点。实际业务中可能根据不同的信息进行认证,所以Spring推荐通过实现 AuthenticationManager 接口来自定义自己的认证方式。Spring 提供了一个默认的实现 ProviderManager。

4、ProviderManager:认证提供者管理器,该类中维护了一个认证提供者列表,只要这个列表中的任何一个认证提供者提供的认证方式认证通过,认证就结束。

5、AuthenticationProvider:认证提供者,这是一个接口,具体如何认证,就看如何实现该接口。Spring Security 提供了 DaoAuthenticationProvider 实现该接口,这个类就是使用数据库中数据进行认证。

6、UserDetailsService:根据用户名获取用户详细信息

7、UserDetails:用户的详细信息,主要用于登录认证。

8、SecurityContextHolder:是最基本的对象,它负责存储当前 SecurityContext 信息。SecurityContextHolder默认使用 ThreadLocal 来存储认证信息,意味着这是一种与线程绑定的策略。在Web场景下的使用Spring Security,在用户登录时自动绑定认证信息到当前线程,在用户退出时,自动清除当前线程的认证信息。

9、SecurityContext:负责存储认证通过的用户信息(Authentication对象),保存着当前用户是什么,是否已经通过认证,拥有哪些权限等等。

10、AuthenticationSuccessHandler:主要用于认证成功后的处理,比如返回页面或者数据。

11、AuthenticationFailureHandler:主要用于认证失败后的处理,比如返回页面或者数据。

12、AccessDecisionManager:主要用于实现权限,决定请求是否具有访问的权限。

13、AccessDeniedHandler:主要用于无权访问时的处理
 文章来源地址https://www.toymoban.com/news/detail-819446.html

到了这里,关于Spring Security介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Security in Action 第三章 SpringSecurity管理用户

    本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获,也请大家多多支持。 专栏地址:SpringSecurity专栏 本文涉及的代码都已

    2024年02月07日
    浏览(47)
  • Spring Security 构建基于 JWT 的登录认证

    一言以蔽之,JWT 可以携带非敏感信息,并具有不可篡改性。可以通过验证是否被篡改,以及读取信息内容,完成网络认证的三个问题:“你是谁”、“你有哪些权限”、“是不是冒充的”。   为了安全,使用它需要采用 Https 协议,并且一定要小心防止用于加密的密钥泄露。

    2024年02月16日
    浏览(47)
  • Spring Boot 整合SpringSecurity和JWT和Redis实现统一鉴权认证

    本文主要讲了Spring Security文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句:努力一点,优秀一点 Spring Security Spring Security是一个强大且高度可定制的身份验证和访问控制框架。它是保护基

    2024年02月05日
    浏览(51)
  • spring-security -oauth2 整合 JWT

    在这个基础上,进行整合。 spring security oauth2学习 -- 快速入门_本郡主是喵的博客-CSDN博客 先把  reids,common-pools  等依赖删掉。 删掉redis的下相关配置 1.1 导入依赖 1.2 核心代码 创建 jwtTokenConfig.java 在 AuthenticationServer.java 里面新增这些。  运行,启动!  复制这个token去官网解析

    2024年02月09日
    浏览(58)
  • Spring Boot 优雅集成 Spring Security 5.7(安全框架)与 JWT(双令牌机制)

    本章节将介绍 Spring Boot 集成 Spring Security 5.7(安全框架)。 🤖 Spring Boot 2.x 实践案例(代码仓库) Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。 它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring

    2024年02月12日
    浏览(57)
  • Spring Security OAuth 2.0 资源服务器— JWT

    目录 一、JWT的最小依赖 二、JWT的最基本配置 1、指定授权服务器 2、初始预期(Startup Expectations) 3、运行时预期(Runtime Expectations) 三、JWT认证是如何工作的 四、直接指定授权服务器 JWK Set Uri 五、提供 audiences 六、覆盖或取代启动自动配置 1、使用jwkSetUri() 2、使用decoder()

    2024年02月05日
    浏览(62)
  • SpringBoot2.3集成Spring Security(二) JWT认证

    紧接上文,我们已经完成了 SpringBoot中集成Spring Security,并且用户名帐号和密码都是从数据库中获取。但是这种方式还是不能满足现在的开发需求。 使用JWT的好处: 无状态认证:JWT本身包含了认证信息和声明,服务器不需要在会话中保存任何状态。这样使得应用程序可以更加

    2024年02月11日
    浏览(60)
  • SpringCloud gateway+Spring Security + JWT实现登录和用户权限校验

    原本打算将Security模块与gateway模块分开写的,但想到gateway本来就有过滤的作用 ,于是就把gateway和Security结合在一起了,然后结合JWT令牌对用户身份和权限进行校验。 Spring Cloud的网关与传统的SpringMVC不同,gateway是基于Netty容器,采用的webflux技术,所以gateway模块不能引入spri

    2024年02月03日
    浏览(49)
  • 【深入浅出 Spring Security(十三)】使用 JWT 进行前后端分离认证(附源码)

    JWT 全称 Java web Token,在此所讲述的是 JWT 用于身份认证,用服务器端生成的JWT去替代原始的Session认证,以提高安全性。 JWT本质是一个Token令牌,是由三部分组成的字符串,分别是头部(header)、载荷(payload)和签名(signature)。头部一般包含该 JWT 的基本信息,例如所使用的

    2024年02月12日
    浏览(42)
  • 后端进阶之路——深入理解Spring Security配置(二)

    「作者主页」 :雪碧有白泡泡 「个人网站」 :雪碧的个人网站 「推荐专栏」 : ★ java一站式服务 ★ ★ 前端炫酷代码分享 ★ ★ uniapp-从构建到提升 ★ ★ 从0到英雄,vue成神之路 ★ ★ 解决算法,一个专栏就够了 ★ ★ 架构咱们从0说 ★ ★ 数据流通的精妙之道★ ★后端进

    2024年02月14日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包