Skip to content
This repository has been archived by the owner on Dec 8, 2021. It is now read-only.

Commit

Permalink
feat(policy): Send back the policy failure payload to the consumer an…
Browse files Browse the repository at this point in the history
…d respect its content-type

Closes gravitee-io/issues#531
  • Loading branch information
brasseld authored and NicolasGeraud committed Apr 9, 2017
1 parent 51347fd commit 3656903
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
Expand Up @@ -193,11 +193,16 @@ private void sendPolicyFailure(PolicyResult policyResult, Response response) {

if (policyResult.message() != null) {
try {
String contentAsJson = mapper.writeValueAsString(new PolicyResultAsJson(policyResult));
Buffer buf = Buffer.buffer(contentAsJson);
response.headers().set(HttpHeaders.CONTENT_LENGTH, Integer.toString(buf.length()));
Buffer payload;
if (policyResult.contentType().equalsIgnoreCase(MediaType.APPLICATION_JSON)) {
payload = Buffer.buffer(policyResult.message());
} else {
String contentAsJson = mapper.writeValueAsString(new PolicyResultAsJson(policyResult));
payload = Buffer.buffer(contentAsJson);
}
response.headers().set(HttpHeaders.CONTENT_LENGTH, Integer.toString(payload.length()));
response.headers().set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
response.write(buf);
response.write(payload);
} catch (JsonProcessingException jpe) {
logger.error("Unable to transform a policy result into a json payload", jpe);
}
Expand Down
Expand Up @@ -36,4 +36,9 @@ public int httpStatusCode() {
public String message() {
return null;
}

@Override
public String contentType() {
return null;
}
}
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -154,7 +154,7 @@
<gravitee-plugin-core.version>1.0.0</gravitee-plugin-core.version>
<gravitee-plugin-policy.version>1.0.0</gravitee-plugin-policy.version>
<gravitee-plugin-resource.version>1.0.0</gravitee-plugin-resource.version>
<gravitee-policy-api.version>1.0.0</gravitee-policy-api.version>
<gravitee-policy-api.version>1.1.0-SNAPSHOT</gravitee-policy-api.version>
<gravitee-gateway-api.version>1.3.0</gravitee-gateway-api.version>
<gravitee-reporter-api.version>1.3.0</gravitee-reporter-api.version>
<vertx.version>3.4.1</vertx.version>
Expand Down

0 comments on commit 3656903

Please sign in to comment.