image.png

    SpringSecurity是一个鉴权框架,它将所有的请求进行拦截。在用户登陆时,授予用户身份,用户使用该身份在访问任何数据时,SpringSecurity都会进行身份检查、权限校验,只有在通过的情况下才会将请求转入系统中正常访问。

    身份令牌:Authentication是用户的身份令牌,用户请求在进入系统后,就会根据请求生成一个身份令牌,即dto,该身份令牌伴随用户访问的整个过程(生成-校验-鉴权)。

    拦截器(身份令牌的生成):AuthenticationFilter是所有拦截器的父类,他是请求进入系统的第一步,将请求中的所有数据提取出来,形成一个Authentication,给后面的鉴权器进行鉴权。

    鉴权器:AuthenticationManger是用户的鉴权器的所有子类的接口,主要有一个鉴权功能,即将拦截器提取的参数,进行鉴权,具体鉴权功能需要AuthenticationProvider具体实现。其中AuthenticationManager主要的子类为ProviderManager。

    登录器:AuthenticationProvider是登录器,在用户进行登陆时,用拦截器Authentication与数据库中获取的账户信息做对比,返回一个Authenticartion,具体是否登陆成功,内容均在Authentication中。

    用户信息提供者:UserDetailsService主要是用户服务,提供用户的账户信息,方便Provider对原本的AUthentication进行鉴权使用。

    用户信息:UserDetails是UserDetailsService服务提供的主要用户信息。

    信息加密:PasswordEncoder是UserDetails的用户信息的密码加密工具,防止别人通过彩虹对照表将数据库破获使用彩虹对照表获取用户密码。