Unirest是缓存基本身份验证信息

时间:2017-07-25 13:11:20

标签: java httpclient basic-authentication unirest

我们正在调用后端2个休息服务(A,B)(GET方法),这两个服务有不同的凭据(用户名和密码),但我们遇到了奇怪的行为:

1-如果我们首先呼叫A,认证成功,但如果我们呼叫B,我们将收到禁止(认证失败)

然后我们再次部署应用程序并执行以下方案:

2-首先呼叫B,认证成功,但如果我们呼叫A,我们将收到禁止(认证失败):

这是调用后端服务的示例代码:

HttpResponse<String> resp;
        try {
            resp = Unirest.get(url)
                    .basicAuth(username,password).asString();
            String jsonstr = resp.getBody();
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }

任何帮助?

1 个答案:

答案 0 :(得分:0)

问题在于,HTTP客户端正在缓存JSESSIONID cookie。我已切换到此处找到的库的OpenUnirest 2.2.08+版本:https://github.com/OpenUnirest/unirest-java

现在我可以设置禁用cookie管理的选项,现在解决了我的基本身份验证缓存问题。

Options.enableCookieManagement(false);

有关详细信息,请参阅问题故障单:https://github.com/OpenUnirest/unirest-java/issues/30