0

我使用此处提供的示例 Netty HTTP Authetication for Client 但仍有 401 响应

当我打印请求标头时,我可以看到除了一件事之外一切都很好,授权是:

Authorization: YWRtaW46YWRtaW4=

例如,当我使用 Chrome 进行相同的身份验证时,我有:

Authorization: Basic YWRtaW46YWRtaW4=

netty doc 中关于如何在标题中添加 Basic 没有什么特别之处

当我使用tcpmon之类的工具捕获失败消息并通过手动添加基本字符串重新发送消息时,它工作正常。

我的问题可能是如何在 netty 提交的标头中添加 Basic ?

有人遇到过这个吗?

谢谢

4

2 回答 2

1

您发布的第一个标题不正确。它必须看起来像 Chrome 的那个。

因此,在需要时,您只需调用 HttpMessage.setHeader(...) 并传递值。

于 2012-08-02T12:53:40.420 回答
1

我终于在 org.jboss.netty.handler.codec.http.HttpHeaders#addHeader 方法中做了一个 hack:

    void addHeader(final String name, final Object value) {
    validateHeaderName(name);
    String strVal = toString(value);
    HttpCodecUtil.validateHeaderValue(strVal);
    int h = hash(name);
    int i = index(h);

    if (Names.AUTHORIZATION.equals(name)) strVal = "Basic "+strVal;
    addHeader0(h, i, name, strVal);
}
于 2013-02-05T03:48:32.140 回答