Мне удалось перехватить ответ Аутентификации, переопределив SavedRequestAwareAuthenticationSuccessHandler
и добавив его в свою конфигурацию безопасности:
http....
.and().oauth2Login().successHandler(authCodeCachingSuccessHandler)
, где я кеширую код и передаю суперклассу для обработки:
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
Map<String, String[]> parameterMap = request.getParameterMap();
String[] s = parameterMap.get("code");
tokenCache.setAuthCode( (DefaultOidcUser) authentication.getPrincipal(), s[0] );
super.onAuthenticationSuccess(request, response, authentication);
}
Я сомневаюсь, что это «лучшая практика», но она работает, и мне еще предстоит найти более элегантный способ