Open
Description
ProblemDefaultsProvider replaces null value of instance with URI of currently served endpoint, i.e /products/123
which violates the rfc7807/rfc9457:
The "instance" member is a JSON string containing a URI reference that identifies the specific occurrence of the problem.
So it isn't supposed to be an URI of the currently served endpoint but each occurrence of the problem should have a unique identifier.
Introduced by
#39
To Reproduce
Steps to reproduce the behavior:
- Pretty much any request which results into a problem response which doesn't explicitly provide the "instance" field.
Expected behavior
"instance" field not present or has a valid value. Or at least ProblemDefaultsProvider can be disabled (#326)
Workaround
@ApplicationScoped
public class FixProblemInstanceProcessor implements ProblemPostProcessor {
/**
* Has to run after com.tietoevry.quarkus.resteasy.problem.postprocessing.ProblemDefaultsProvider. See {@link ProblemDefaultsProvider#priority()}
*/
@Override
public int priority() {
return 99;
}
@Override
public HttpProblem apply(HttpProblem problem, ProblemContext context) {
return HttpProblem.builder(problem)
.withInstance(null) //or a valid value
.build();
}
}
Metadata
Metadata
Assignees
Labels
No labels