Preautorizar el manejo de errores
Estoy usandoSpring Oauth2
ySpring Pre-post Annotations
ConSpring-boot
Tengo una clase de servicioMyService
. uno deMyService
los métodos son:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
¿Puedo controlar de alguna manera el json que devuelve el controlador de llamada?
El json que se devuelve por defecto es:
{error : "access_denied" , error_message: ".."}
Quiero poder controlar elerror_message
param. Estoy buscando algo similar a:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
Una forma en que pensé en hacerlo es usandoExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
pero no puedo controlar elmessage
de la excepción y tampoco puedo estar seguro de que estoException
será lanzado en futuras versiones