Package io.micronaut.problem
Class ProblemErrorResponseProcessor
java.lang.Object
io.micronaut.problem.ProblemErrorResponseProcessor
- All Implemented Interfaces:
io.micronaut.http.server.exceptions.response.ErrorResponseProcessor<org.zalando.problem.Problem>
@Singleton
public class ProblemErrorResponseProcessor
extends Object
implements io.micronaut.http.server.exceptions.response.ErrorResponseProcessor<org.zalando.problem.Problem>
Error Response processor to respond
Problem responses.
- Adds application/problem+json content type
- If the cause is a
ThrowableProblem, it returns as the body. - If the cause is not a
ThrowableProblem, it generates a default Problem based on theErrorContextand returns it as the HTTP Body.
- Since:
- 1.0
- Author:
- Sergio del Amo
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected @NonNull org.zalando.problem.ThrowableProblemdefaultProblem(@NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext, @NonNull io.micronaut.http.HttpStatus httpStatus) Creates aThrowableProblemwhen the root cause was not an exception of typeThrowableProblem.protected booleanincludeErrorMessage(@NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext) WhetherThrowableProblem, created when the root cause is not an exception of typeThrowableProblem, should contain Error::getMessage in the problem detail.@NonNull io.micronaut.http.MutableHttpResponse<org.zalando.problem.Problem>processResponse(@NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext, @NonNull io.micronaut.http.MutableHttpResponse<?> baseResponse)
-
Field Details
-
APPLICATION_PROBLEM_JSON
- See Also:
-
-
Constructor Details
-
ProblemErrorResponseProcessor
Constructor.- Parameters:
config- Problem configuration
-
-
Method Details
-
processResponse
@NonNull public @NonNull io.micronaut.http.MutableHttpResponse<org.zalando.problem.Problem> processResponse(@NonNull @NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext, @NonNull @NonNull io.micronaut.http.MutableHttpResponse<?> baseResponse) - Specified by:
processResponsein interfaceio.micronaut.http.server.exceptions.response.ErrorResponseProcessor<org.zalando.problem.Problem>
-
defaultProblem
@NonNull protected @NonNull org.zalando.problem.ThrowableProblem defaultProblem(@NonNull @NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext, @NonNull @NonNull io.micronaut.http.HttpStatus httpStatus) Creates aThrowableProblemwhen the root cause was not an exception of typeThrowableProblem.- Parameters:
errorContext- Error ContexthttpStatus- HTTP Status- Returns:
- Default problem
-
includeErrorMessage
protected boolean includeErrorMessage(@NonNull @NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext) WhetherThrowableProblem, created when the root cause is not an exception of typeThrowableProblem, should contain Error::getMessage in the problem detail. To avoid accidental information leakage defaults to false unless the root cause is of typeUnsatisfiedRouteExceptionwhich contains helpful information to diagnose the issue (e.g. missing required query value) in the details.- Parameters:
errorContext- Error Context- Returns:
- To avoid accidental information leakage defaults to false unless the root cause is of type
UnsatisfiedRouteException
-