关于java:HTTP基本用户身份验证:不接受“授权”标头(区分大小写)

HTTP basic user authentication : “Authorization” header not accepted (case-sensitive)

我正在使用HTTP头基本身份验证向服务器发送用户名和密码:

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
List<String> as = new ArrayList<String>();
HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator();

as.add(Authenticator.BASIC);
basicAuth.setAuthSchemes(as);

basicAuth.setUsername("ABC");
basicAuth.setPassword("password");

basicAuth.setPreemptiveAuthentication(true);

serviceStub._getServiceClient().getOptions().setProperty(
                org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE,
                basicAuthenticator);

我正在使用Tomcat6作为服务器。

在catalina.log文件中,我可以看到以下内容:

header=authorization=Basic U2hyZXlhczpwYXNzd29yZA==

我期待"授权"作为"授权",即授权中的大写字母"A"。

我查了很多现有的帖子,但找不到答案。

你能建议一下如何达到上述效果吗?

提前谢谢


HTTP头字段名作为授权,不区分大小写

From RFC 2616 -"Hypertext Transfer Protocol -- HTTP/1.1", Section 4.2,"Message Headers":

Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive.

所以情况不重要

编辑添加新的HTTP/1.1文档以供参考