gpt4 book ai didi

java - 带冒号的密码无法通过基本身份验证?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:50 27 4
gpt4 key购买 nike

我正在使用基本身份验证。如果我的密码包含冒号,我似乎无法通过身份验证。密码中不允许使用冒号吗?我如何进行身份验证:

DefaultHttpClient client = new DefaultHttpClient();
HttpRequestInterceptor preemptiveAuth = new HttpRequestInterceptor() {
...
};
client.addRequestInterceptor(preemptiveAuth, 0);
client.getCredentialsProvider().setCredentials(
new AuthScope("example.com", 443),
new UsernamePasswordCredentials("me", "password:test"));

没有冒号的密码总是有效的。带冒号的密码总是失败。在将密码传递给 UsernamePasswordCredentials 类构造函数之前,我是否必须以某种方式转义密码?我知道 basicauth 使用冒号分隔的用户名/密码,然后进行 base64 编码,这就是问题所在吗?

谢谢

----更新------

谢谢大家,是的,我与之通信的服务器出现了问题!

最佳答案

它应该可以工作。 RFC2617是围绕 HTTP 身份验证的 RFC。该规范对密码中使用的字符没有任何限制,仅对用户名有限制;

为了获得授权,客户端发送用户名和密码, 在 base64 [7] 中由单个冒号(“:”)字符分隔 凭据中的编码字符串。

  basic-credentials = base64-user-pass
base64-user-pass = <base64 [4] encoding of user-pass,
except not limited to 76 char/line>
user-pass = userid ":" password
userid = *<TEXT excluding ":">
password = *TEXT

关于java - 带冒号的密码无法通过基本身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3990560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com