Код

Код

.

@Component

public class GlobalErrorWebExceptionHandler extends AbstractErrorWebExceptionHandler {

   public GlobalErrorWebExceptionHandler(ErrorAttributes g, ApplicationContext applicationContext,

                                         ServerCodecConfigurer serverCodecConfigurer) {

       super(g, new WebProperties.Resources(), applicationContext);

       super.setMessageWriters(serverCodecConfigurer.getWriters());

       super.setMessageReaders(serverCodecConfigurer.getReaders());

   }


   @Override

   protected RouterFunction getRoutingFunction(final ErrorAttributes errorAttributes) {

       return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse);

   }


   private Mono renderErrorResponse(ServerRequest request) {

       Map<String, Object> error = getErrorAttributes(request, ErrorAttributeOptions.of(MESSAGE));

       return ServerResponse.status(getHttpStatus(error)).contentType(MediaType.APPLICATION_JSON)

               .body(BodyInserters.fromValue(error));

   }

   private int getHttpStatus(Map<String, Object> errorAttributes) {

       return (int) errorAttributes.get("status");

   }

}

Report Page