Używam Spring Oauth2
i Spring Pre-post Annotations
Z Spring-boot
błąd pre-autoryzacji obsługi
Mam klasy usług MyService
. jedną z metod jest MyService
:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
mogę kontrolować w jakiś sposób JSON, który jest zwracany przez dzwoniącego kontroler?
JSON, który jest zwracany jest domyślnie:
{error : "access_denied" , error_message: ".."}
Chcę być w stanie kontrolować error_message
param. Szukam czegoś podobnego do:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
jeden sposób myślałem to zrobić jest użycie ExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
ale nie mogę kontrolować message
wyjątku. a także nie mogę być pewny, że ten zostanie wyrzucony w przyszłych wydaniach
Opcja '{błąd: "Odmowa dostępu", error_message: ".."}' wygląda wyjście z procedury obsługi błędów domyślny Wiosna Boot. Czy to właśnie używasz? –
yes @DaveSyer Używam Spring boot – royB