У меня есть приложение, использующее Spring Security 3.0.x. Там у меня есть пользовательский AuthenticationProvider:
public class AppAuthenticationProvider implements AuthenticationProvider {
    @Override
    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
        ...
        if (!check1()) throw new UsernameNotFoundException();
        if (!check2()) throw new DisabledException();
        ...
    }
Я бы хотел послать коды ответа куба на каждое исключение, например 404 для UsernameNotFoundException, 403 для DisabledException и т.д. На данный момент у меня есть только идентификатор-ошибка-url в моей конфигурации безопасности Spring, поэтому я перенаправляюсь на него для каждого исключения в authenticate().