1.自定义三个类
XxxAuthenticationProvider:完成认证和授权
XxxAuthenticationToken:构建未授权和已授权的token
XxxTokenGranter:自定义模式,在配置文件中会加入到授权模式列表中,另外返回已授权的token
2.两个配置文件
SecurityConfig:实现XxxAuthenticationProvider的注入,否则ProviderManager无法选到,需要扩展的认证类型都可以在这里添加
TokenGranterConfig:在容器中添加一个TokenGranter的bean,获取默认的5种模式 + 自定义的模式
最后:在AuthorizationServerConfigurerAdapter的配置子类中,endpoints配置tokenGranter,clients配置模式。
(无代码,仅提供思路,网上代码有很多)
附:①springsecurity采用过滤器链的方式认证,在FilterChainProxy这个类里面打断点,可以看到所有的认证过滤器。