Android Tomcat摘要认证

时间:2018-12-18 19:38:33

标签: android apache okhttp3 digest-authentication

首先,我是Android的新手,我认为自己做错了事。

我正在尝试对Apache Tomcat服务器使用摘要式身份验证。

我正在使用okhttp3库,并且可以使用基本身份验证来对该服务进行调用,但是我似乎看不到如何实现摘要身份验证。我使用org.apache.http.client.HttpClient库在Java中工作。

两者之间的区别似乎在于凭据的设置方式:

credentialProvider.setCredentials(
    new AuthScope(targetHost.getHostName(), targetHost.getPort(), "UserDatabase"),
    new UsernamePasswordCredentials(mUsername, mPassword)
);

与我的实现相反,我的实现通常是从okhttp3 wiki复制的:

OkHttpClient client = new OkHttpClient.Builder()
    .authenticator(new Authenticator() {
        @Override public Request authenticate(Route route, Response response) throws IOException {
             if (response.request().header("Authorization") != null) {
                  return null; // Give up, we've already attempted to authenticate.
             }

             String credential = Credentials.basic("superuser", "superuser");
             return response.request().newBuilder()
                      .header("Authorization", credential)
                      .build();
     })
    .build();

AuthScope告诉Servlet容器在UserDatabase领域中查找用户名/密码凭据。

我正在尝试遵循:The second answer to this question,似乎大多数库都已更改,或者我做错了其他事情。

要添加到该参考文献中的HttpClient库,请添加

implementation group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

依赖于应用程序。

有更好的方法吗?

0 个答案:

没有答案