Witaj,
nie znam Javy, ale przy większym ruchu aby zminimalizować konieczność ciągłego poświadczania użytkownika w oparciu o zapytania do tabeli users stosuje się tokeny - polecam poczytać o JWT. Odnośnie przywracania hasła opiera się to na metodzie, która wygeneruje link do strony dzięki której można przeprowadzić ustanowienie nowego hasła. Warto tutaj posłużyć się e-mailem użytkownika na który zostanie przesłany ten link, aby mieć pewność że to konkretna osoba rozpoczęła tę procedurę.
M.