Лимит запросов на т в Spring Boot - PullRequest
0 голосов
/ 03 июня 2018

Я пишу сервис REST при весенней загрузке, и я столкнулся с проблемой, которую не могу решить.Я гуглял часами, но большинство примеров кажутся мне слишком сложными, потому что я новичок в Spring Boot.

Давайте предположим, что пользователь может сохранить объект в моей базе данных:

@RequestMapping(value = "/person", method = RequestMethod.GET)
public void saveName (@RequestParam String name){
    personRepository.save(new Person(name));
}

Сейчас я пытаюсь найти способ, чтобы анонимный пользователь мог делать только ограниченное количество записей в минуту.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вам нужно использовать Spring Security для этой проблемы.Вы можете проверить анонимность пользователя с помощью аннотации isAnonymous() и ограничить ее, используя таблицу для захвата попыток.Так как вы новичок в Spring Boot.Spring Security лучше освежить в памяти, так как он дает вам полный контроль над ним.Если вам не нужна пружинная защита, тогда применяется тот же подход: используйте таблицу для захвата неаутентифицированных попыток пользователя.Кроме того, есть идентификатор сеанса по умолчанию, вы можете использовать его вместо того, чтобы проходить через получение IP-адресов.

0 голосов
/ 03 июня 2018

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

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