//根据access_token从数据库获取不到OAuth2AccessToken
if(oAuth2AccessToken == null){
return Mono.error(new InvalidTokenException(“invalid access token,please check”));
}else if(oAuth2AccessToken.isExpired()){
return Mono.error(new InvalidTokenException(“access token has expired,please reacquire token”));
}
OAuth2Authentication oAuth2Authentication =this.tokenStore.readAuthentication(accessToken);
if(oAuth2Authentication == null){
return Mono.error(new InvalidTokenException(“Access Token 无效!”));
}else {
return Mono.just(oAuth2Authentication);
}
})).cast(Authentication.class);
}
}
网关层的安全配置
@Configuration
public class SecurityConfig {
private static final String MAX_AGE = “18000L”;
@Autowired
private DataSource dataSource;
@Autowired
private AccessManager accessManager;
/**
- 跨域配置
*/
public WebFilter corsFilter() {
return (ServerWebExchange ctx, WebFilterChain chain) -> {
ServerHttpRequest request = ctx.getRequest();
if (CorsUtils.isCorsRequest(request)) {
HttpHeaders requestHeaders = request.getHeaders();
ServerHttpResponse response = ctx.getResponse();
Ht