Skip to content

Commit ee79f1a

Browse files
committed
Netty & OkHttp : Added Allow header on 405
405 response: include Allow: POST http: added Allow header for 405
1 parent c9f5c3b commit ee79f1a

File tree

3 files changed

+18
-24
lines changed

3 files changed

+18
-24
lines changed

netty/src/main/java/io/grpc/netty/NettyServerHandler.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -882,12 +882,8 @@ private void respondWithHttpError(
882882
}
883883

884884
private void respondWithHttpError(
885-
ChannelHandlerContext ctx,
886-
int streamId,
887-
int code,
888-
Status.Code statusCode,
889-
String msg,
890-
Http2Headers allowHeaders) {
885+
ChannelHandlerContext ctx, int streamId, int code, Status.Code statusCode, String msg,
886+
Http2Headers allowHeaders) {
891887
Metadata metadata = new Metadata();
892888
metadata.put(InternalStatus.CODE_KEY, statusCode.toStatus());
893889
metadata.put(InternalStatus.MESSAGE_KEY, msg);

netty/src/test/java/io/grpc/netty/NettyServerHandlerTest.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -539,13 +539,12 @@ public void headersWithInvalidMethodShouldFail() throws Exception {
539539
.path(new AsciiString("/foo/bar"));
540540
ByteBuf headersFrame = headersFrame(STREAM_ID, headers);
541541
channelRead(headersFrame);
542-
Http2Headers responseHeaders =
543-
new DefaultHttp2Headers()
544-
.set(InternalStatus.CODE_KEY.name(), String.valueOf(Code.INTERNAL.value()))
545-
.set(InternalStatus.MESSAGE_KEY.name(), "Method 'FAKE' is not supported")
546-
.status("" + 405)
547-
.set(HttpHeaderNames.ALLOW, "POST")
548-
.set(CONTENT_TYPE_HEADER, "text/plain; charset=utf-8");
542+
Http2Headers responseHeaders = new DefaultHttp2Headers()
543+
.set(InternalStatus.CODE_KEY.name(), String.valueOf(Code.INTERNAL.value()))
544+
.set(InternalStatus.MESSAGE_KEY.name(), "Method 'FAKE' is not supported")
545+
.status("" + 405)
546+
.set(HttpHeaderNames.ALLOW, "POST")
547+
.set(CONTENT_TYPE_HEADER, "text/plain; charset=utf-8");
549548

550549
verifyWrite()
551550
.writeHeaders(

okhttp/src/test/java/io/grpc/okhttp/OkHttpServerTransportTest.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -976,13 +976,12 @@ public void httpErrorsAdhereToFlowControl() throws Exception {
976976
clientFrameWriter.flush();
977977

978978
String errorDescription = "HTTP Method is not supported: GET";
979-
List<Header> responseHeaders =
980-
Arrays.asList(
981-
new Header(":status", "405"),
982-
new Header("content-type", "text/plain; charset=utf-8"),
983-
new Header("grpc-status", "" + Status.Code.INTERNAL.value()),
984-
new Header("grpc-message", errorDescription),
985-
new Header("allow", "POST"));
979+
List<Header> responseHeaders = Arrays.asList(
980+
new Header(":status", "405"),
981+
new Header("content-type", "text/plain; charset=utf-8"),
982+
new Header("grpc-status", "" + Status.Code.INTERNAL.value()),
983+
new Header("grpc-message", errorDescription),
984+
new Header("allow", "POST"));
986985
assertThat(clientFrameReader.nextFrame(clientFramesRead)).isTrue();
987986
verify(clientFramesRead)
988987
.headers(false, false, 1, -1, responseHeaders, HeadersMode.HTTP_20_HEADERS);
@@ -1411,10 +1410,10 @@ private void verifyHttpError(
14111410
int streamId, int httpCode, Status.Code grpcCode, String errorDescription,
14121411
List<Header> extraHeaders) throws Exception {
14131412
List<Header> responseHeaders = Lists.newArrayList(
1414-
new Header(":status", "" + httpCode),
1415-
new Header("content-type", "text/plain; charset=utf-8"),
1416-
new Header("grpc-status", "" + grpcCode.value()),
1417-
new Header("grpc-message", errorDescription));
1413+
new Header(":status", "" + httpCode),
1414+
new Header("content-type", "text/plain; charset=utf-8"),
1415+
new Header("grpc-status", "" + grpcCode.value()),
1416+
new Header("grpc-message", errorDescription));
14181417
responseHeaders.addAll(extraHeaders);
14191418
assertThat(clientFrameReader.nextFrame(clientFramesRead)).isTrue();
14201419
verify(clientFramesRead)

0 commit comments

Comments
 (0)