#java #spring #spring-boot #spring-security #jwt
#java #spring #весенняя загрузка #spring-безопасность #jwt
Вопрос:
Цель
Когда пользователь создает ресурс (нет необходимости подключаться), он получает уникальный токен, который затем он должен передавать на каждый запрос, который он отправляет для получения информации о своем ресурсе.
Вопрос
Есть простой способ сделать это с Spring? Действительно, все, что я нашел и прочитал, использовало аутентификацию с именем пользователя и паролем.
Уже пробовал
Моей первой идеей было создать токен в конце POST
методов (сохранить его в базе данных), поместить его в каждый GET
запрос и проверить, есть ли requestToken == databaseToken
.
Однако я не думаю, что это лучший способ сделать это.
Итак, можете ли вы помочь мне и посоветовать, как решить проблему?
Большое спасибо!
Ответ №1:
Существует несколько способов.
Используя аннотацию @sessionAttributes:
При первом обращении к нашему контроллеру Spring создаст экземпляр и поместит его в модель. Поскольку мы также объявляем компонент в @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—