Я создаю сервер авторизации Spring Boot, который должен генерировать токены Oauth2 двумя разными методами аутентификации.Я хочу иметь разные конечные точки для каждого метода, но по умолчанию Spring создает только /oauth/token
, и хотя его можно изменить, я не думаю, что для него можно использовать два разных пути.
В качестве альтернативы я пытаюсь создать в контроллере два метода, которые выполняют внутренний forward to /oauth/token
, добавляя параметр к запросу, чтобы я мог знать, откуда он пришел.
У меня есть что-то вроде этого:
@RequestMapping(value = "/foo/oauth/token", method = RequestMethod.POST)
public ModelAndView fooOauth(ModelMap model) {
model.addAttribute("method", "foo");
return new ModelAndView("forward:/oauth/token", model);
}
Это выполняет пересылку правильно, но аутентификация завершается неудачно с:
There is no client authentication. Try adding an appropriate authentication filter.
Тот же запрос работает правильно при отправке на /oauth/token
напрямую, поэтому я предполагаю, что проблема в том, что BasicAuthenticationFilter не работает после пересылки.
Как я могу заставить его работать?