Spring security的执行流程
authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
AuthenticationManager 默认使用的是 ProviderManager,它是 AuthenticationManager 的一个默认实现。ProviderManager 管理一个或多个 AuthenticationProvider,并依次调用它们进行认证。
默认配置:
ProviderManager 默认会注册一个 DaoAuthenticationProvider,这是 Spring Security 中最常用的认证提供者。DaoAuthenticationProvider 会根据 UserDetailsService 来加载用户数据,并通过 PasswordEncoder 来验证密码。
AuthenticationManager 工作原理:
AuthenticationManager authenticationManager = new ProviderManager(Arrays.asList(new DaoAuthenticationProvider()));
ProviderManager 会依次检查各个 AuthenticationProvider 是否支持当前的 Authentication 类型。如果支持,则交给相应的 AuthenticationProvider 来进行认证。
上一篇:dubbo支持多种协议:
下一篇:再次理解:事务传播机制
相关文章
-
Spring如何通过三级缓存解决循环依赖问题
三级缓存: 一级缓存(singletonObjects):存储已经完全初始化的单例 Bean 对象。 二级缓存(earlySingletonObjects):存储已经实例化但尚未完全初始化的单例 Bean 对象。 三级缓存(singletonFactories):存储 Bean 对象的创建工厂,用于在创建过程中检测循环依赖。
NEW个对象 2024-12-17
-
事务传播
事务传播
NEW个对象 2025-01-01
-
FactoryBean与BeanFactory区别
1、BeanFactory是Spring框架的核心接口,它是Spring IoC容器的基础。BeanFactory负责创建、配置和管理Bean的生命周期。 2、FactoryBean是一个特殊的Bean,它自身是一个Bean,同时也充当了一个工厂的角色,如果返回的bean是FactoryBean,那么会调用它的getObject()方法获取对象。
NEW个对象 2025-01-17