【发布时间】:2021-02-25 21:43:46
【问题描述】:
我们实现了StreamingHttpServiceFilter,它对每个请求执行身份验证。
在身份验证不成功时,我们使用以下代码返回 401 Unauthorized 错误:
private StreamingHttpResponse createUnauthorizedResponse(final StreamingHttpResponseFactory responseFactory) {
return responseFactory.unauthorized();
}
当过滤器返回错误时,在客户端我们会收到以下消息
GrpcStatus{code=INTERNAL, cause=null, description='HTTP状态码: 401 未经授权的无效内容类型:空标头: NettyH2HeadersToHttpHeaders[传输编码:]'}
如您所见,GrpcStatus 有code=INTERNAL,这意味着客户端需要解析description,并找出错误代码。
是否可以在准备来自过滤器的响应时添加任何额外的元数据,以便代码可以是 UNAUTHENTICATED,或者是否有任何客户端可用的工具可以读取描述并转换为 http 状态代码?
【问题讨论】:
标签: java grpc servicetalk