dlaczego nie napiszesz klasy kontrolera rozszerzonej przez wszystkie inne kontrolery (lub użyj @ControllerAdvice w przypadku, gdy używasz wersji 3.2) i dołączasz metodę opisaną w tej klasie? Coś takiego
@ExceptionHandler(Throwable.class)
public @ResponseBody GenericResponse handleException(Throwable throwable){
//handle exception
}
lub czytać ten blog post
UPDATE
Niestety do tej późnej odpowiedzi. Oto moja sugestia. Zrób po prostu niepowodzenie z odpowiedzią 403. W tym celu dodaj poniższy fragment w konfiguracji zabezpieczeń wiosennych.
<beans:bean id="entryPoint"
class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" />
i punkt punkt_wejścia-ref do tej fasoli
<http auto-config="true" use-expressions="true" entry-point-ref="entryPoint">
aw stronie klienta w kodzie AJAX, dodać blok błędzie
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
}
}
Obecnie próbuję dowiedzieć się tego wypróbuję jedną część z wiosennym zabezpieczeniem. Znajdź jakieś rozwiązanie jeszcze? Idealnie chcemy zdefiniować jeden obiekt błędu zdefiniowany w json, aby klient mógł go obsłużyć. – Michael