Шлюз не может получить информацию о пользователе с сервера авторизации для создания принципала. Таким образом, он снова перенаправляет на сервер авторизации из-за отсутствия принципала. Попробуйте создать пользовательскую конечную точку информации пользователя на сервере авторизации. (/ userinfo вместо / oauth / userinfo). Возможно, вам потребуется разрешить / userinfo в конфигурации безопасности.
@RestController
public class UserInfoEndpoint {
@PostMapping("/userinfo")
public Map<String, Object> user() {
Map<String, Object> map = new HashMap<>();
String name = SecurityContextHolder.getContext().getAuthentication().getName();
map.put("user_name", name);
return map;
}
}
Кроме того, добавьте user-info-authentication-method: form к вашему провайдеру.