Piszę w Springu logowanie do serwisu restowego i chciałbym uzyskać efekt taki jak tutaj na forum jest podczas autentykacji, czyli jeśli hasło jest złe to wywali komunikat o haśle, jeśli user to user, jak oba to oba. Potrzebuję więc w serwisie stwierdzić co było powodem nieudanej autentykacji hasło czy username i zwrócić to w formie jsona lub innej. Szukam rozwiązania, które zadziała i będzie eleganckie.
Do autentykacji korzystam z domyślnej logiki spring security pod endpointem '/login'. Do tego używam mojego failure handlera, który póki co wykorzystuje implementacje klasy rozszerzanej, czyli tak:

class RESTAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
        super.onAuthenticationFailure(request, response, exception);
    }
}

Na nieudany login zwróci 401 (BTW: jeśli robiłbym to z jakąs templatką jps/thymeleaf to mógłbym zrobić redirect na failureUrl prawda?). Pobranie wartości przekazywanych parametrów username i password nie robi problemu, ale **nie wiem jak sprawdzić który dokładnie wywołał błąd. **
Ogólnie pomysł taki mam żeby implementacje onAuthenticationFailure() z nadklasy wywalic całkiem, napisać implementację, która wyciągnie winowajce i teraz jakie jest poprawne rozwiązanie:
a) dokleić do wiadomości wyjątku nazwę parametru i przez exception handlera wysłać na front (mam mocne wątpliwości co do tego)
b) wysłać w response kod odpowiedzi i nazwę parametru np:

response.sendError(HttpServletResponse.SC_UNAUTHORIZED,
					"Authentication Failed: " + wrongParam);

i wyciągnąć z niego nazwę parametru na froncie

c) zwrocić:

response.sendError(HttpServletResponse.SC_UNAUTHORIZED,
					"Authentication Failed: " + exception.getMessage());

i dodatkowo wyciągnąć parametr i wysłać go w formie json. Tylko jak z poziomu failure handlera wystawić jsona?