Skip to content

Commit 82bd333

Browse files
committed
Fix content negotiation
The Allow header is not for a list of methods. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Accept When 405 is returned, then Allow is required to be provided and be a list of methods: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/405
1 parent 180bbf1 commit 82bd333

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

src/main/java/edu/illinois/library/cantaloupe/resource/AbstractResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,11 @@ protected void doOPTIONS() {
208208
Method[] methods = getSupportedMethods();
209209
if (methods.length > 0) {
210210
response.setStatus(Status.NO_CONTENT.getCode());
211-
response.setHeader("Allow", Arrays.stream(methods)
211+
response.setHeader("Access-Control-Allow-Methods", Arrays.stream(methods)
212212
.map(Method::toString)
213213
.collect(Collectors.joining(",")));
214214
} else {
215-
response.setStatus(Status.METHOD_NOT_ALLOWED.getCode());
215+
response.setStatus(Status.NOT_ACCEPTABLE.getCode());
216216
}
217217
}
218218

src/main/java/edu/illinois/library/cantaloupe/resource/iiif/v1/InformationResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ protected final void doOPTIONS() {
5353
if (methods.length > 0) {
5454
response.setStatus(Status.NO_CONTENT.getCode());
5555
response.setHeader("Access-Control-Allow-Headers", "Authorization");
56-
response.setHeader("Allow", Arrays.stream(methods)
56+
response.setHeader("Access-Control-Allow-Methods", Arrays.stream(methods)
5757
.map(Method::toString)
5858
.collect(Collectors.joining(",")));
5959
} else {
60-
response.setStatus(Status.METHOD_NOT_ALLOWED.getCode());
60+
response.setStatus(Status.NOT_ACCEPTABLE.getCode());
6161
}
6262
}
6363

src/main/java/edu/illinois/library/cantaloupe/resource/iiif/v2/InformationResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ protected final void doOPTIONS() {
5555
if (methods.length > 0) {
5656
response.setStatus(Status.NO_CONTENT.getCode());
5757
response.setHeader("Access-Control-Allow-Headers", "Authorization");
58-
response.setHeader("Allow", Arrays.stream(methods)
58+
response.setHeader("Access-Control-Allow-Methods", Arrays.stream(methods)
5959
.map(Method::toString)
6060
.collect(Collectors.joining(",")));
6161
} else {
62-
response.setStatus(Status.METHOD_NOT_ALLOWED.getCode());
62+
response.setStatus(Status.NOT_ACCEPTABLE.getCode());
6363
}
6464
}
6565

src/main/java/edu/illinois/library/cantaloupe/resource/iiif/v3/InformationResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ protected final void doOPTIONS() {
5555
if (methods.length > 0) {
5656
response.setStatus(Status.NO_CONTENT.getCode());
5757
response.setHeader("Access-Control-Allow-Headers", "Authorization");
58-
response.setHeader("Allow", Arrays.stream(methods)
58+
response.setHeader("Access-Control-Allow-Methods", Arrays.stream(methods)
5959
.map(Method::toString)
6060
.collect(Collectors.joining(",")));
6161
} else {
62-
response.setStatus(Status.METHOD_NOT_ALLOWED.getCode());
62+
response.setStatus(Status.NOT_ACCEPTABLE.getCode());
6363
}
6464
}
6565

0 commit comments

Comments
 (0)