`
zhh9106
  • 浏览: 58313 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

springsecurity第一章简单入门理解——springsecurity的大体认证过程

阅读更多

个人学习spring security的心得:要入门这个框架首先要大体了解它的认证过程,而这个认证过程就是使用spring security的各种Filter(过滤器)来完成

 

 

大多数的spring security的学习文档都会有这样一张认证流程图:


 

当客户端一个请求来到的时候,它会被AbstractAuthenticationProcessingFilter拦截(这个Filter是在基于 web 的认证请求中使用的。 处理包含 认证信息的请求,如 认证信息可能是 form POST提交的、 SSO 信息或者其他用户提供的),然后它检验到你是一个认证请求,所以它会分发给处理认证请求的过滤器UsernamePasswordAuthenticationFilter来处理,如果认证成功,它会返回一个认证成功的用户实体类和这个用户实体类所拥有的权限信息的凭证。

 

 

再来看看在UsernamePasswordAuthenticationFilter这里是怎么处理这个请求的?


 

图1可以看到,它会交给一个叫做认证管理者AuthenticationManager来处理,其实这里就是认证中心,它拥有各种类和接口来处理这些认证请求,它会交给一个叫AuthenticationProvider的实现类来处理。

 

 

这时要结合图2来分析:UsernamePasswordAuthenticationFilter会请求参数创建一个叫UsernamePasswordAuthenticationToken的凭证传递给AuthenticationManager认证中心——>再到AuthenticationProvider的实现类(图2用的是DaoAuthenticationProvider)。这时Provider拿到这个凭证就会去应用的内存中去匹配,如果匹配正确就返回这个认证实体(用户)的详细信息和用户权限。(这里的图用的是去内存中匹配,因为我们实际中的信息都会存到数据库,道理是一样的,如果存在数据库,那么就去数据库中去匹配,因为去内存还是去数据库是可配置的,以后会有讲到)。

 

 

认证成功后,返回的认证实体和用户权限信息,会封装成一个AuthenticationToken凭证,而系统应用返回到客户端用户的session里面会包含着这个Token,客户端拿着这个凭证之后,就可以访问其它权限范围内的资源了。

 

 

一个简略的spring security认证过程就是这样了,其中的细节,在以后的章节中会慢慢的深入了解到。

  • 大小: 52.7 KB
  • 大小: 45.1 KB
分享到:
评论

相关推荐

    Spring Security 3系列文章——入门篇(一)

    **Spring Security 3 系列文章——入门篇(一)** Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,广泛应用于Java企业级应用和Spring Boot项目中。本篇将作为Spring Security 3的入门介绍,帮助...

    Spring security认证授权

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、权限授权、会话管理、CSRF防护以及基于HTTP的访问控制。在这个例子中,我们将...

    SpringSecurity.pdf

    此外,Spring Security还提供了一个快速入门案例,帮助初学者理解如何通过配置来保护应用程序的资源。 Spring Security之所以在Java社区中广泛流行,是因为它不仅提供了强大的安全特性,还具有高可定制性、良好的...

    Spring Security 资料合集

    这三份资料——"实战Spring Security 3.x.pdf"、"Spring Security 3.pdf" 和 "Spring Security使用手册.pdf" 将深入探讨这些概念,并提供实践指导,帮助读者掌握如何在实际项目中应用Spring Security。通过学习这些...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    整合Spring Security到Spring Cloud Gateway的过程通常包括以下步骤: 1. **配置Redis**:由于微服务架构中多个服务可能需要共享用户信息,因此使用Redis作为集中式的session存储是常见的选择。这样,用户在任一...

    spring security 完整项目实例

    Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...

    SpringSecurity学习总结源代码

    SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、...在学习过程中,分析提供的源代码和示例将有助于深入理解SpringSecurity的工作原理,并能帮助你在实际项目中有效地应用这些知识。

    SpringSecurity入门Demo实例

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个入门Demo实例中,我们将探讨如何配置和使用Spring Security来保护我们的Java应用。教程链接提及的CSDN博客文章提供了...

    Spring Security in Action

    Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户身份的验证,以确保用户的...

    springsecurity学习笔记

    Spring Security 是一个强大的Java安全框架,用于保护基于Spring的应用程序。它提供了全面的安全服务,包括认证、授权、CSRF防护、会话管理等。在深入理解Spring Security之前,我们需要了解几个核心概念: 1. **...

    spring security 入门demo

    - `spring-security-openid` 文件可能包含了一个OpenID身份验证的示例,这允许用户使用第三方服务(如Google或Yahoo)进行身份验证,增强了用户体验。 5. **X.509证书认证**: - `spring-security-x509` 演示了...

    SpringSecurity笔记,编程不良人笔记

    SpringSecurity提供`Authentication`接口,用于处理身份验证过程。 - **Authorization**: 授权是指决定用户是否有权限访问某个资源。SpringSecurity支持基于角色的访问控制(RBAC)和其他授权模型。 - **Access ...

    Spring Security 3.x 完整入门教程 源代码

    Spring Security 是一个强大的Java...在学习过程中,你可能需要理解Spring Security的核心组件、配置文件的结构以及如何根据项目需求进行定制。逐步掌握这些知识点,你将能够为你的Spring应用构建出坚固的安全屏障。

    SpringSecurity入门小demo(SSM+Spring Security)

    **Spring Security 入门小 Demo(SSM + Spring Security)** Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,广泛应用于 Java Web 应用程序的安全管理。本项目结合了 SpringMVC(Spring 模型-...

    springsecurity入门实例

    在"TestSecurity"这个实例中,你将会看到一个简单的 Spring Security 配置和运行流程,包括登录、权限控制以及可能的错误处理。通过学习这个实例,你将对 Spring Security 有一个基础的认识,并能将其应用到实际项目...

    spring security第一个项目

    Spring Security 是一个强大的安全框架,主要用于Java Web应用的安全管理,包括认证、授权和访问控制等核心功能。在“spring security第一个项目”中,我们将探讨如何搭建一个基础的Spring Security环境,实现用户...

    SpringSecurity+MVC入门Demo

    通过这个"SpringSecurity+MVC入门Demo",初学者可以了解如何在Spring MVC应用中集成Spring Security,实现用户认证和授权的基本流程,为后续深入学习和实践打下基础。这个Demo应该包含了配置文件、控制器、视图和...

    Springboot整合Spring security+Oauth2+JWT搭建认证服务器,网关,微服务之间权限认证及授权

    1. **Spring Security认证**:Spring Security的核心在于认证过程,即验证用户的身份。通常,我们可以定义一个`UserDetailsService`来加载用户的详细信息,然后通过`AuthenticationManager`进行认证。一旦用户被认证...

    Spring Security+OAuth2 精讲,打造企业级认证与授权

    在课程中,新增的第10+11章可能涵盖了Spring Security与OAuth2的深度整合,这包括: 1. 如何使用Spring Security作为OAuth2的授权服务器,实现用户登录验证和令牌发放。 2. 客户端注册和认证:如何在Spring ...

    精彩:Spring Security 演讲PPT

    Spring Security 是一个功能强大的安全框架,可以为基于Java的应用程序提供认证(Authentication)、授权(Authorization)等功能,同时提供了丰富的配置选项来满足不同的应用场景需求。 #### 二、传统Web应用安全开发...

Global site tag (gtag.js) - Google Analytics