Использование фильтра для проверки подлинности пользователя и пароля с помощью веб-безопасности Spring - PullRequest
0 голосов
/ 25 сентября 2019

Пробовал следующее, но приводит к ошибкам типа 'invalid_grant', 'invalid_client' и т. Д.

Добавлен фильтр (скажем, LoginFilter), который выполняет следующие действия в doFilter() -

if(loginToIdP(request)) {  
      UsernamePasswordAuthenticationToken token =
    // resolve from request
      SecurityContextHolder.getContext().setAuthentication(token) ; 
 }
 filterChain.doFilter(request, response);

Фильтр установлен в WebSecurityConfigurerAdapter.configure() -

auth.addFilterBefore(new LoginFilter(), UsernamePasswordAuthenticationFilter.class).cors()

AuthorizationServerConfigurerAdapter использует InMemoryTokenStore.

Запрос на вход в систему отправляется на ~ / oauth / token со следующим телом запроса -

  username: <username>
  password: <password>
  grant_type: password
...