一,业务背景
公司业务需要使用ldap验证,原来的用户名密码验证无法满足需求,又不想使用springboot实现的ldap验证,因为我们有一些特殊的逻辑,那么我们就需要自己实现一套登录验证逻辑,下面就是授权服务器的具体实现,首先是引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
在springboot oauth2中,比如表单登录,usernamepasswordFilter是用来拦截请求并生成Authentication的,后续有相应的Provider来处理,provider的suport方法就是用来校验是否该他来处理,处理完成之后则是进行走handler颁发token
后续操作中,我们都会带着token来进行操作,OAuth2AuthenticationProcessingFilter则是解析Header和Param来获取token,如果没有token则走权限验证一套,如果有token则验证token的有效性
二,TokenStore实现
tokenStore这里采用JWT的方式:
package com.xxx.itt.123.auth.config;
import jdk.nashorn.internal.parser.Token;
import org.springframework.context.annotation.Bean;
import org.springframew