SpringSecurity初次正式见面

前言:SpringSecurity其实一早就出现在项目的框架中,平时也多多少少会接触到,但一直没有整块的时间让我去全面的学习,现在逮到机会要把它更全面的了解一下~

概念

SpringSecurity是基于Spring的 企业应用系统提供声明式的 安全访问控制解决方式的 提供身份验证和授权的 安全框架。
应用的安全性包括用户认证(Authentication)和用户授权(Authorization)。

  • 用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般通过校验用户名和密码来完成。
  • 用户授权指的是验证某个用户是否有权限执行某个操作。

列一下具体的类~

过滤器

web应用的安全框架最常用的收发就是使用Filter~
如下为其主要过滤器

  • WebAsyncManagerIntegrationFilter
  • SecurityContextPersistenceFilter
  • HeaderWriterFilter
  • CorsFilter
  • LogoutFilter
  • RequestCacheAwareFilter
  • SecurityContextHolderAwareRequestFilter
  • AnonymousAuthenticationFilter
  • SessionManagementFilter
  • ExceptionTranslationFilter
  • FilterSecurityInterceptor
  • UsernamePasswordAuthenticationFilter
  • BasicAuthenticationFilter

框架的核心组件

  • SecurityContextHolder:提供对SecurityContext的访问
  • SecurityContext,:持有Authentication对象和其他可能需要的信息
  • AuthenticationManager 其中可以包含多个AuthenticationProvider
  • ProviderManager对象为AuthenticationManager接口的实现类
  • AuthenticationProvider 主要用来进行认证操作的类 调用其中的authenticate()方法去进行认证操作
  • Authentication:Spring Security方式的认证主体
  • GrantedAuthority:对认证主题的应用层面的授权,含当前用户的权限信息,通常使用角色表示
  • UserDetails:构建Authentication对象必须的信息,可以自定义,可能需要访问DB得到
  • UserDetailsService:通过username构建UserDetails对象,通过loadUserByUsername根据userName获取UserDetail对象 (可以在这里基于自身业务进行自定义的实现 如通过数据库,xml,缓存获取等)

安全框架原理理解
简单举例

你可能感兴趣的:(SpringSecurity初次正式见面)