我有一个使用Azure AD for Oauth2.0的springboot应用程序。
我的问题是,Oauth身份验证流在本地的延迟大约为1s,而使用http代理的延迟为2s,这是我们用于产品部署的时间。因此,每次通话至少需要2.5秒,这是非常糟糕的用户体验。
我做了非常简短的分析,发现大部分延迟来自OAuth2AuthorizationRequestRedirectFilter.doFilterInternal
。这些数字是(本地)1000ms, 1200ms, 1100ms...
。
所以我的问题是:
有没有一种方法可以覆盖OAuth2AuthorizationRequestRedirectFilter
的某些组件或其他一些过滤器,这些过滤器将使我节省几百毫秒的时间?
我可以缓存某些身份验证或进行离线身份验证吗?
仅供参考:以下是我的安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.addFilterBefore(_dualAuthFilter, OAuth2AuthorizationRequestRedirectFilter.class)
.authorizeRequests()
.antMatchers("/api/auth*").permitAll()
.and()
.authorizeRequests()
.antMatchers("/api/v*").authenticated()
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login()
.authorizationEndpoint()
.baseUri(_oAuthConfig.getAuthEndpointBaseUri());
}