Spring Boot 引入 Spring Security

在这里插入图片描述

关于

  1. spring security 官网链接, 本次示例使用的版本为5.6.3:https://docs.spring.io/spring-security/reference/index.html
  2. spring boot 项目中引入 spring security, maven坐标如下:
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

1. Spring Boot 项目引入Spring Security依赖后,为我们做了什么?

自动配置类 SpringBootWebSecurityConfiguration
SpringBootWebSecurityConfiguration 源码截图
从源码中可以看到,在引入对应依赖不做任何配置的情况下会支持表单登录(formLogin)以及 basic登录(httpBasic);

2. 核心类 SecurityFilterChain

从上面自动配置类中可以知道:自动配置的过程中只是创建了一个SecurityFilterChain对象。这也是Spring Security 认证授权的核心机制,过滤器链机制。将用户认证信息经过一系列过滤器链之后,如果认证成功便授权。反之则进行认证失败的处理逻辑。默认情况下SecurityFilterChain中包含有哪些 filter 呢?

2.1 SpringSecurity实现的过滤器

spring security 框架中为我们实现了很多常见过滤器的默认实现,如果我们需要自定义实现一些过滤器来实现自己的额外功能,可以参考一些他们的实现。其中未配置默认加载的过滤器我进行了标红处理:

过滤器过滤器作用默认是否加载
ChannelProcessingFilter过滤请求协议 HTTP 、HTTPSNO
WebAsyncManagerIntegrationFilter将 WebAsyncManger 与 SpringSecurity 上下文进行集成YES
SecurityContextPersistenceFilter在处理请求之前,将安全信息加载到 SecurityContextHolder 中YES
HeaderWriterFilter处理头信息加入响应中YES
CorsFilter处理跨域问题NO
CsrfFilter处理 CSRF 攻击YES
LogoutFilter处理注销登录YES
OAuth2AuthorizationRequestRedirectFilter处理 OAuth2 认证重定向NO
Saml2WebSsoAuthenticationRequestFilter处理 SAML 认证NO
X509AuthenticationFilter处理 X509 认证NO
AbstractPreAuthenticatedProcessingFilter处理预认证问题NO
CasAuthenticationFilter处理 CAS 单点登录NO
OAuth2LoginAuthenticationFilter处理 OAuth2 认证NO
Saml2WebSsoAuthenticationFilter处理 SAML 认证NO
UsernamePasswordAuthenticationFilter处理表单登录YES
OpenIDAuthenticationFilter处理 OpenID 认证NO
DefaultLoginPageGeneratingFilter配置默认登录页面YES
DefaultLogoutPageGeneratingFilter配置默认注销页面YES
ConcurrentSessionFilter处理 Session 有效期NO
DigestAuthenticationFilter处理 HTTP 摘要认证NO
BearerTokenAuthenticationFilter处理 OAuth2 认证的 Access TokenNO
BasicAuthenticationFilter处理 HttpBasic 登录YES
RequestCacheAwareFilter处理请求缓存YES
SecurityContextHolder AwareRequestFilter包装原始请求YES
JaasApiIntegrationFilter处理 JAAS 认证NO
RememberMeAuthenticationFilter处理 RememberMe 登录NO
AnonymousAuthenticationFilter配置匿名认证YES
OAuth2AuthorizationCodeGrantFilter处理OAuth2认证中授权码NO
SessionManagementFilter处理 session 并发问题YES
ExceptionTranslationFilter处理认证/授权中的异常YES
FilterSecurityInterceptor处理授权相关YES
SwitchUserFilter处理账户切换NO
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 2.6是Spring Boot框架的最新版本,Spring Security是一个基于Spring框架的安全性控制框架。 Spring Boot 2.6相比之前的版本,带来了许多新功能和改进。它提供了更好的性能和稳定性,同时也修复了一些先前版本中存在的漏洞和问题。此外,Spring Boot 2.6还增加了一些新的特性,例如对Java 17的全面支持、改进的响应式编程支持以及集成的监视和管理功能等。这些改进使得Spring Boot更易用、更强大,能够更好地满足开发人员的需求。 而Spring Security作为Spring框架的一个重要模块,主要用于实现身份验证和授权功能。它提供了强大的安全性控制机制,可用于保护Web应用程序、RESTful API和微服务等。Spring Security提供了多种认证和授权方式,包括基于传统的用户名和密码、Token认证、OAuth2、LDAP认证等。它还支持自定义的权限验证规则,使开发人员能够灵活地定义和管理用户的访问权限。 Spring SecuritySpring Boot 2.6的结合使用能够极大地简化安全性配置和集成。Spring Boot 2.6提供了对Spring Security的自动化配置,使得开发人员无需手动配置大量的安全性相关设置,而是可以通过简单的注解和配置实现安全性控制。此外,Spring Boot 2.6还提供了与其他安全性框架和技术的集成,如Spring Session、Spring Actuator和Spring Cloud Security等,使得开发人员能够更便捷地实现应用程序的认证和授权功能。 总而言之,Spring Boot 2.6和Spring Security是一对非常强大的组合。它们可以帮助开发人员快速构建安全可靠的应用程序,并提供灵活的安全性管理和配置选项。无论是开发Web应用程序还是微服务,使用Spring Boot 2.6和Spring Security都能够提供优秀的安全性支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值