Я использую библиотеку AppAuth для аутентификации Oauth2. https://github.com/openid/AppAuth-Android
Я использую пример аутентификации приложения Google. https://codelabs.developers.google.com/codelabs/appauth-android-codelab/#0
Я изменил URL-адреса в соответствии с моим поставщиком oauth. Я указал действительную конечную точку авторизации, идентификатор клиента, uri перенаправления, uri токена, область действия (openid, профиль, адрес электронной почты), тип ответа (код). Я не знаю, есть ли способ добавить секрет потребителя. Я нигде в образце кода не видел способа добавить секрет потребителя. Когда я запускаю приложение, я вижу нашу страницу sso, я могу войти в систему, происходит перенаправление. Когда выполняется запрос на получение токена, я получаю исключение. Запрос токена не выполняется. Есть идеи, почему это могло произойти? URL-адрес обмена токенами правильный, и я не уверен, почему он жалуется на то, что файл не найден по этому конкретному URL-адресу токена. Есть какие-нибудь указатели на то, чтобы углубиться в эту проблему?
W/AppAuthSample: Token Exchange failed
AuthorizationException: {"type":0,"code":3,"errorDescription":"Network error"}
at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:244)
at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:206)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.io.FileNotFoundException: <token_url>
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:251)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:26)
at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:239)
at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:206)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)