使用springboot改善OAuth2身份验证延迟

时间:2019-10-14 18:02:00

标签: spring-boot spring-security oauth-2.0

我有一个使用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());
}

0 个答案:

没有答案