errore che sto usando Spring Oauth2
e Spring Pre-post Annotations
Con Spring-boot
pre-autorizzare la manipolazione
ho una classe di servizio MyService
. uno dei metodi è MyService
:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
posso controllare in qualche modo il JSON che viene restituito dal chiamante controller?
il JSON restituito da default è:
{error : "access_denied" , error_message: ".."}
voglio essere in grado di controllare il error_message
param. Sto cercando qualcosa di simile a:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
Un modo ho pensato di farlo è quello di utilizzare ExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
ma non riesco a controllare il message
dell'eccezione. e anche io non posso essere sicuro che questo Exception
sarà gettato nelle versioni future
Il '{errore: "ACCESS_DENIED", error_message: ".."}' appare come l'uscita dal gestore degli errori predefinito Primavera di avvio. E 'quello che stai usando? –
sì @DaveSyer sto usando Spring boot – royB