Почему вы не пишете класс контроллера, расширенный всеми другими контроллерами (или используйте @ControllerAdvice в случае, если вы используете 3.2), и включите в этот класс метод аннотирования с помощью обработчика исключения? Нечто подобное
@ExceptionHandler(Throwable.class)
public @ResponseBody GenericResponse handleException(Throwable throwable){
//handle exception
}
Или читать этот дневник post
UPDATE
Извините за столь поздний ответ. Вот мое предложение. Сделайте его просто неудачным с ответом 403. Для этого просто добавьте следующий фрагмент в свою конфигурацию весенней безопасности.
<beans:bean id="entryPoint"
class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" />
и точка EntryPoint-исх к этому боба
<http auto-config="true" use-expressions="true" entry-point-ref="entryPoint">
И на стороне клиента, в вашем коде AJAX, добавить блок об ошибке
error : function(jqXHR, textStatus, errorThrown){
if (jqXHR.status == 403){
alert('you need to login to do this operation');
window.location.href = contextPath+"/signin";
// or whatever you want to
}
}
Я сейчас пытаюсь понять это один из меня с частью безопасности весны. Найти какое-нибудь решение? В идеале мы хотим иметь один объект ошибки, определенный в json для обработки клиента. – Michael