API User Session Spring - PullRequest
       6

API User Session Spring

1 голос
/ 03 марта 2011

Я разрабатываю API через веб-сервисы в Spring MVC. Пользователь должен пройти проверку подлинности и установить cookie в браузере клиента. Теперь этот API не будет находиться в том же домене, поэтому мне нужен способ узнать, когда истекло время сеанса на клиенте, поскольку они будут выполнять запросы API после входа в систему. Каков наилучший безопасный способ сделать это? Хранение информации в сеансе, кэше, базе данных для сравнения с файлом cookie запроса на сервере?

1 Ответ

3 голосов
/ 03 марта 2011

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

Мой токен аутентификации сгенерирован, примерно так: -

Date creationDate = new Date();
String key = UUID.randomUUID().toString().toUpperCase() + "|" + userName + "|" + creationDate.getTime();
String authenticationToken = ... // encrypt key with Jasypt

Я добавил дату создания, потому что она позволяет мне проверять время жизни. Каждый раз, когда пользователь вызывает любой веб-сервис, я проверяю продолжительность простоя, используя дату создания. Если продолжительность простоя составляет менее 30 минут, я сбрасываю продолжительность простоя обратно на ноль и разрешаю пользователю запускать веб-сервис. Однако, если пользователь бездействует более 30 минут, я считаю токен аутентификации недействительным, и он должен повторно пройти аутентификацию, чтобы получить новый токен.

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