私はカウンタにint変数を実装しました。私はPOSTメソッドしか持っていないので、再びforgetPasswordCounter
を0に設定することはできません。そのため、私はどのくらい正確に動作しません。どのようにリクエストを制限することができますか?実際にPOSTリクエストの制限
@Controller
public class Controller {
private static int forgetPasswordCounter = 0;
@RequestMapping(value = "/forgetpassword", method = RequestMethod.POST)
public ResponseEntity <String> forgetPassword(@RequestParam(value = "username") String username) throws Exception {
while (forgetPasswordCounter < 3) {
Client foundUser = globalServices.findClientByUsername(username);
if (null != foundUser) {
...
forgetPasswordCounter++;
return new ResponseEntity <String> (responseMessage, HttpStatus.OK);
}
...
forgetPasswordCounter++;
return new ResponseEntity <String> (responseMessage, HttpStatus.UNAUTHORIZED);
}
String responseMessage = "Too many requests";
return new ResponseEntity <String> (responseMessage, HttpStatus.BAD_REQUEST);
}
}
のカウントを失うことはありませんあなたがすることはできませんユーザー名とカウンタを追加してマップにしますか? また、最後に試してから何回試してから、必要に応じてリセットするかを指定することもできます。 –
いつパスワードカウンタをリセットしますか?そして、なぜあなたは 'HttpStatus.OK'の値を0に設定していませんか – jiveturkey
IMOデータベースにこの数を保存しておき、' Client'を取得したら、カウントが3より小さいかどうかを確認できます –