Улучшение задержки аутентификации OAuth2 с помощью Springboot - PullRequest
0 голосов
/ 14 октября 2019

У меня есть приложение Springboot, которое использует Azure AD для Oauth2.0.

Моя проблема заключается в том, что поток аутентификации Oauth имеет локальную задержку около 1 с, а 2 с использованием прокси-сервера http, который мы используемдля развертывания продукта. Таким образом, каждый вызов занимает не менее 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());
}
...