Я использую Spring Oauth2
и Spring Pre-post Annotations
С Spring-boot
У меня есть класс обслуживания MyService
. один из методов MyService
:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
Я могу каким-то образом управлять json, который возвращается контроллером вызывающего абонента?
json, который возвращается по умолчанию:
{error : "access_denied" , error_message: ".."}
Я хочу иметь возможность управлять параметром error_message
. Я ищу что-то похожее на:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
Один из способов, который я думал сделать, - использовать ExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
но я не могу управлять message
исключения. и я не могу быть уверен, что этот Exception
будет выпущен в будущих выпусках