我们已经实现StreamingHttpServiceFilter
了对每个请求执行身份验证。
在身份验证不成功时,我们使用以下代码返回 401 Unauthorized 错误:
private StreamingHttpResponse createUnauthorizedResponse(final StreamingHttpResponseFactory responseFactory) {
return responseFactory.unauthorized();
}
当过滤器返回错误时,在客户端我们收到以下消息
GrpcStatus{code=INTERNAL, cause=null, description='HTTP status code: 401 Unauthorized invalid content-type: null headers: NettyH2HeadersToHttpHeaders[transfer-encoding: ]'}
如您所见, GrpcStatus 有code=INTERNAL
,这意味着客户端需要解析description
,并找出错误代码。
是否可以在准备来自过滤器的响应时添加任何其他元数据,以便代码可以UNAUTHENTICATED
或者是否有任何客户端可用的工具可以读取描述并转换为 http 状态代码?