Типичный подход - отображать сообщение об ошибке только после неудачного входа в систему, где неудачный вход в систему определяется параметром запроса.То есть вы настраиваете Spring Security как
<form-login ... authentication-failure-url = "/login?error=1" />
и отображаете сообщение об ошибке как
<c:if test="${not empty param['error']}">
<c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
</c:if>
Однако, поскольку SPRING_SECURITY_LAST_EXCEPTION
является атрибутом сеанса, я думаю, вы можете сбросить его с помощьюследующий подход:
<c:remove var = "SPRING_SECURITY_LAST_EXCEPTION" scope = "session" />