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 theErrorContext
and returns it as the HTTP Body.
- Since:
- 1.0
- Author:
- Sergio del Amo
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected @NonNull org.zalando.problem.ThrowableProblem
defaultProblem
(@NonNull io.micronaut.http.server.exceptions.response.ErrorContext errorContext, @NonNull io.micronaut.http.HttpStatus httpStatus) Creates aThrowableProblem
when the root cause was not an exception of typeThrowableProblem
.protected boolean
includeErrorMessage
(@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:
processResponse
in 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 aThrowableProblem
when 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 typeUnsatisfiedRouteException
which 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
-