Как использовать Restcall с Spring Security - PullRequest
0 голосов
/ 10 октября 2018

В моем приложении Spring MVC я использую Spring Security.Пока все работает нормально, но я должен признать, я не понимаю всех деталей.

В том же приложении пользователь может вызывать некоторые функции контроллера с помощью rest api.Когда пользователь (скажем, Том) делает это, его аутентификация теряется.Вместо этого контроллер вызывается анонимным пользователем.

Я отследил этот «пользовательский переключатель» до приведенного ниже кода.Переменная restCall содержит URL-адрес моего приложения.Этот вызов будет работать для пользователя Тома, если он поместит его прямо в браузер.Используя restcall, пользователь меняется на anyonymous.

1) Могу ли я предотвратить это, когда вызывающий пользователь (Tom) уже вошел в систему?2) Поскольку эти службы должны вызываться пользователем, который еще не просматривает веб-интерфейс приложения, мне нужно будет найти способ входа в систему с помощью самого остального вызова.

private void callWebservice(HttpServletRequest req, String restCall) {
    RestTemplate restTemplate = new RestTemplate();

    ResponseEntity<String> response
      = restTemplate.getForEntity(restCall, String.class);

    logger.debug(response.toString());

    //assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));

}

1 Ответ

0 голосов
/ 10 октября 2018

Вам нужна, например, аутентификация JSON Web Token (JWT).

Шаги следующие:

1) Клиент выполняет аутентификацию, почтовый запрос с именем пользователя и паролем

2) Если аутентификация прошла успешно, сервер возвращает токен, в которомкодируется пользователь

3) При следующем вызове, GET или POST, вы добавляете JWT к вашему header, таким образом сервер будет знать, кто вы, потому что сервер может декодировать токен и может предоставитьтакже право власти и функциональности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...