Я изучаю java и Spring некоторое время, в свободное время, поэтому я еще не мастер java и Spring.Объяснение об переопределении SimpleUrlAuthenticationFailureHandler
Для веб-проекта, который я создал для изучения java и Spring, мне пришлось расширять SimpleUrlAuthenticationFailureHandlerm
.
Что не ясно, к нему почему после расширения SimpleUrlAuthenticationFailureHandler
и первостепенную onAuthenticationFailure
, в моем собственном onAuthenticationFailure()...
метод, который я должен был вызвать метод super.onAuthenticationFailure(...)
.
Возможно, я не получил одно из основных правил java.
Вот класс я говорил о
public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
if(exception.getClass().isAssignableFrom(BadCredentialsException.class)) {
setDefaultFailureUrl("/url1");
}
else if (exception.getClass().isAssignableFrom(DisabledException.class)) {
setDefaultFailureUrl("/url2");
}
else if (exception.getClass().isAssignableFrom(SessionAuthenticationException.class)) {
setDefaultFailureUrl("/url3");
}
super.onAuthenticationFailure(request, response, exception); //why this???
}
}
Что именно вы делаете перед вызовом super.onAuthenticationFailure (запрос, ответ, исключение) ;? – Unknown
Я отредактировал мое сообщение. Во всяком случае, я проверяю тип исключения и перенаправляю пользователя на определенную страницу. – MDP
Здесь вы устанавливаете только URL-адрес по умолчанию. Поэтому вам нужно написать логику перенаправления, когда произойдет сбой. Эта логика написана в классе SimpleUrlAuthenticationFailureHandler. Поэтому вам нужно вызвать метод super.onAuthenticationFailure. – Unknown