Использовал токен для защиты API без аутентификации - PullRequest
0 голосов
/ 17 марта 2019

Цель

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

Вопрос

Есть простой способ сделать это с помощью Spring?Действительно, все найденные мной и прочитанные туто использовали аутентификацию с именем пользователя и паролем.

Уже пытались

Моей первой идеей было создать токен в конце POST методы (сохраните его в базе данных), поместите его в каждый GET запросов и проверьте, если requestToken == databaseToken.

Однако я не думаю, что это лучший способ сделать это.

Итак, вы можете помочь мне и посоветовать мне решить проблему?

Большое спасибо!

1 Ответ

0 голосов
/ 17 марта 2019

Существует несколько способов.

Использование аннотации @SessionAttributes:

При первом обращении к нашему контроллеру Spring создает экземпляр экземпляра и помещает его в модель.Поскольку мы также объявляем bean-компонент в @SessionAttributes, Spring будет хранить экземпляр.

Вы получите его внутри метода-обработчика контроллера через @ ModelAttribute.

Или вы можете попробовать этот маршрут:

@RequestMapping(value = "/test")
public String handler(HttpSession httpSession) {
    httpSession.getId(); //this will give you unique identifier that you can set back to object that you send to front end and can share the same ID between requests. 
}

https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html#getId--

...