Я пытаюсь использовать Cognito для аутентификации пользователей в моем приложении для Android. Я создал UserPool (с отключенным mfa) и приложение. Регистрация и подтверждение работают нормально из приложения, поэтому я предполагаю, что само сетевое соединение в порядке, но вход не выполняется
Это код, который я использую для входа:
AuthenticationHandler authenticationHandler = new AuthenticationHandler() {
@Override
public void onSuccess(CognitoUserSession cus, CognitoDevice cd) {
// do something
}
@Override
public void getAuthenticationDetails(AuthenticationContinuation authenticationContinuation, String userId) {
AuthenticationDetails authenticationDetails = new AuthenticationDetails(p.getUserName(), p.getPassword(), null);
authenticationContinuation.setAuthenticationDetails(authenticationDetails);
authenticationContinuation.continueTask();
}
@Override
public void getMFACode(MultiFactorAuthenticationContinuation multiFactorAuthenticationContinuation) {
}
@Override
public void onFailure(Exception exception) {
LOG.log(Level.SEVERE, "Failure of Login", exception);
}
@Override
public void authenticationChallenge(ChallengeContinuation cc) {
}
};
user = userPool.getCurrentUser();
user.getSessionInBackground(authenticationHandler);
Сбой через пару секунд с приведенным ниже исключением. Вызывается метод getAuthenticationMethod, остальные методы (как и следовало ожидать, getMFACode и authenticationChallenge):
01-25 16:55:35.806 8218 8218 E AndroidMain: com.amazonaws.AmazonClientException: Unable to execute HTTP request: timeout
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:441)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.invoke(AmazonCognitoIdentityProviderClient.java:5203)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.respondToAuthChallenge(AmazonCognitoIdentityProviderClient.java:4145)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.respondToChallenge(CognitoUser.java:2273)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.startWithUserSrpAuth(CognitoUser.java:2334)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.initiateUserAuthentication(CognitoUser.java:772)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.mobileconnectors.cognitoidentityprovider.continuations.AuthenticationContinuation$1.run(AuthenticationContinuation.java:100)
01-25 16:55:35.806 8218 8218 E AndroidMain: at java.lang.Thread.run(Thread.java:784)
01-25 16:55:35.806 8218 8218 E AndroidMain: Caused by: java.net.SocketTimeoutException: timeout
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.Okio$3.newTimeoutException(Okio.java:212)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.AsyncTimeout.exit(AsyncTimeout.java:261)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:215)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:186)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:127)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:737)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:609)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:471)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseMessage(HttpURLConnectionImpl.java:534)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseMessage(DelegatingHttpsURLConnection.java:109)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseMessage(HttpsURLConnectionImpl.java:26)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.http.UrlHttpClient.createHttpResponse(UrlHttpClient.java:92)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.http.UrlHttpClient.execute(UrlHttpClient.java:85)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:371)
01-25 16:55:35.806 8218 8218 E AndroidMain: ... 8 more
01-25 16:55:35.806 8218 8218 E AndroidMain: Caused by: java.net.SocketException: socket is closed
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:551)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.Okio$2.read(Okio.java:136)
01-25 16:55:35.806 8218 8218 E AndroidMain: at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
01-25 16:55:35.806 8218 8218 E AndroidMain: ... 23 more
Используемые версии API-интерфейсов aws:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-android-sdk-core</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-android-sdk-cognitoidentityprovider</artifactId>
<version>2.11.0</version>
</dependency>
В чем может быть причина этого?