Class NtsExceptionTranslator


  • @ConditionalOnProperty(prefix="nts.web.rest.exception-translator",
                           name="enabled",
                           havingValue="true",
                           matchIfMissing=true)
    @ControllerAdvice
    @ConditionalOnMissingBean(name="exceptionTranslator")
    public class NtsExceptionTranslator
    extends org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
    Controller advice to translate the server side exceptions to client-friendly json structures. The error response follows RFC7807 - Problem Details for HTTP APIs (RFC7807).
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String realmName  
      • Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler

        logger, PAGE_NOT_FOUND_LOG_CATEGORY, pageNotFoundLogger
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected Map<String,​List<String>> buildUnprocessableErrors​(Exception ex)  
      protected String generateAuthenticateHeader​(Exception ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleBindException​(org.springframework.validation.BindException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleConversionNotSupported​(org.springframework.beans.ConversionNotSupportedException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleExceptionInternal​(Exception ex, Object body, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleHttpMediaTypeNotSupported​(org.springframework.web.HttpMediaTypeNotSupportedException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleHttpRequestMethodNotSupported​(org.springframework.web.HttpRequestMethodNotSupportedException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleInternalServerError​(Exception ex, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleMethodArgumentNotValid​(org.springframework.web.bind.MethodArgumentNotValidException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleMissingPathVariable​(org.springframework.web.bind.MissingPathVariableException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleMissingServletRequestParameter​(org.springframework.web.bind.MissingServletRequestParameterException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleMissingServletRequestPart​(org.springframework.web.multipart.support.MissingServletRequestPartException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleNtsException​(Exception ex, org.springframework.web.context.request.WebRequest request)  
      protected org.springframework.http.ResponseEntity<Object> handleServletRequestBindingException​(org.springframework.web.bind.ServletRequestBindingException ex, org.springframework.http.HttpHeaders headers, org.springframework.http.HttpStatus status, org.springframework.web.context.request.WebRequest request)  
      • Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler

        handleAsyncRequestTimeoutException, handleException, handleHttpMediaTypeNotAcceptable, handleHttpMessageNotReadable, handleHttpMessageNotWritable, handleNoHandlerFoundException, handleTypeMismatch
    • Field Detail

      • realmName

        @Value("${nts.web.rest.exception-translator.realm-name:API Authentication by nentangso.org}")
        protected String realmName
    • Constructor Detail

      • NtsExceptionTranslator

        public NtsExceptionTranslator()
    • Method Detail

      • generateAuthenticateHeader

        protected String generateAuthenticateHeader​(Exception ex,
                                                    org.springframework.http.HttpHeaders headers,
                                                    org.springframework.http.HttpStatus status,
                                                    org.springframework.web.context.request.WebRequest request)
      • handleConversionNotSupported

        protected org.springframework.http.ResponseEntity<Object> handleConversionNotSupported​(org.springframework.beans.ConversionNotSupportedException ex,
                                                                                               org.springframework.http.HttpHeaders headers,
                                                                                               org.springframework.http.HttpStatus status,
                                                                                               org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleConversionNotSupported in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleMissingPathVariable

        protected org.springframework.http.ResponseEntity<Object> handleMissingPathVariable​(org.springframework.web.bind.MissingPathVariableException ex,
                                                                                            org.springframework.http.HttpHeaders headers,
                                                                                            org.springframework.http.HttpStatus status,
                                                                                            org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleMissingPathVariable in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleHttpRequestMethodNotSupported

        protected org.springframework.http.ResponseEntity<Object> handleHttpRequestMethodNotSupported​(org.springframework.web.HttpRequestMethodNotSupportedException ex,
                                                                                                      org.springframework.http.HttpHeaders headers,
                                                                                                      org.springframework.http.HttpStatus status,
                                                                                                      org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleHttpRequestMethodNotSupported in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleHttpMediaTypeNotSupported

        protected org.springframework.http.ResponseEntity<Object> handleHttpMediaTypeNotSupported​(org.springframework.web.HttpMediaTypeNotSupportedException ex,
                                                                                                  org.springframework.http.HttpHeaders headers,
                                                                                                  org.springframework.http.HttpStatus status,
                                                                                                  org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleHttpMediaTypeNotSupported in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleServletRequestBindingException

        protected org.springframework.http.ResponseEntity<Object> handleServletRequestBindingException​(org.springframework.web.bind.ServletRequestBindingException ex,
                                                                                                       org.springframework.http.HttpHeaders headers,
                                                                                                       org.springframework.http.HttpStatus status,
                                                                                                       org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleServletRequestBindingException in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleMethodArgumentNotValid

        protected org.springframework.http.ResponseEntity<Object> handleMethodArgumentNotValid​(org.springframework.web.bind.MethodArgumentNotValidException ex,
                                                                                               org.springframework.http.HttpHeaders headers,
                                                                                               org.springframework.http.HttpStatus status,
                                                                                               org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleMethodArgumentNotValid in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleMissingServletRequestPart

        protected org.springframework.http.ResponseEntity<Object> handleMissingServletRequestPart​(org.springframework.web.multipart.support.MissingServletRequestPartException ex,
                                                                                                  org.springframework.http.HttpHeaders headers,
                                                                                                  org.springframework.http.HttpStatus status,
                                                                                                  org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleMissingServletRequestPart in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleMissingServletRequestParameter

        protected org.springframework.http.ResponseEntity<Object> handleMissingServletRequestParameter​(org.springframework.web.bind.MissingServletRequestParameterException ex,
                                                                                                       org.springframework.http.HttpHeaders headers,
                                                                                                       org.springframework.http.HttpStatus status,
                                                                                                       org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleMissingServletRequestParameter in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleBindException

        protected org.springframework.http.ResponseEntity<Object> handleBindException​(org.springframework.validation.BindException ex,
                                                                                      org.springframework.http.HttpHeaders headers,
                                                                                      org.springframework.http.HttpStatus status,
                                                                                      org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleBindException in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleExceptionInternal

        protected org.springframework.http.ResponseEntity<Object> handleExceptionInternal​(Exception ex,
                                                                                          @Nullable
                                                                                          Object body,
                                                                                          org.springframework.http.HttpHeaders headers,
                                                                                          org.springframework.http.HttpStatus status,
                                                                                          org.springframework.web.context.request.WebRequest request)
        Overrides:
        handleExceptionInternal in class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
      • handleInternalServerError

        @ExceptionHandler(java.lang.Exception.class)
        protected org.springframework.http.ResponseEntity<Object> handleInternalServerError​(Exception ex,
                                                                                            org.springframework.web.context.request.WebRequest request)