From 10b75458079d5d298099bd21b14d748bc3eff22d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 13 May 2024 14:51:17 +0200 Subject: [PATCH] Using OpenID library fetchFromIssuer instead of handling well-known manually --- .../sso/viewmodel/SingleSignOnViewModel.kt | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/sso/viewmodel/SingleSignOnViewModel.kt b/app/src/main/java/org/linphone/ui/main/sso/viewmodel/SingleSignOnViewModel.kt index d5649ea72..ac0493c77 100644 --- a/app/src/main/java/org/linphone/ui/main/sso/viewmodel/SingleSignOnViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/sso/viewmodel/SingleSignOnViewModel.kt @@ -47,7 +47,6 @@ class SingleSignOnViewModel : GenericViewModel() { private const val CLIENT_ID = "linphone" private const val REDIRECT_URI = "org.linphone:/openidcallback" - private const val OPEN_ID_WELL_KNOWN = ".well-known/openid-configuration" } val singleSignOnProcessCompletedEvent = MutableLiveData>() @@ -99,27 +98,18 @@ class SingleSignOnViewModel : GenericViewModel() { @UiThread private fun singleSignOn() { - Log.i("$TAG Fetch from issuer") - AuthorizationServiceConfiguration.fetchFromUrl( + Log.i("$TAG Fetch from issuer [$singleSignOnUrl]") + AuthorizationServiceConfiguration.fetchFromIssuer( Uri.parse(singleSignOnUrl), AuthorizationServiceConfiguration.RetrieveConfigurationCallback { serviceConfiguration, ex -> if (ex != null) { Log.e( - "$TAG Failed to fetch configuration on [$singleSignOnUrl]: ${ex.errorDescription}" + "$TAG Failed to fetch configuration from issuer [$singleSignOnUrl]: ${ex.errorDescription}" ) - if (!singleSignOnUrl.endsWith(OPEN_ID_WELL_KNOWN)) { - Log.w("$TAG Trying again appending [$OPEN_ID_WELL_KNOWN] to URL") - singleSignOnUrl = if (singleSignOnUrl.endsWith("/")) { - "$singleSignOnUrl$OPEN_ID_WELL_KNOWN" - } else { - "$singleSignOnUrl/$OPEN_ID_WELL_KNOWN" - } - singleSignOn() - return@RetrieveConfigurationCallback - } else { - onErrorEvent.postValue(Event("Failed to fetch configuration")) - return@RetrieveConfigurationCallback - } + onErrorEvent.postValue( + Event("Failed to fetch configuration from issuer $singleSignOnUrl") + ) + return@RetrieveConfigurationCallback } if (serviceConfiguration == null) {