From ea6fde3ed0fd0a04abc36fa94196615b209533ec Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Tue, 15 Dec 2020 11:42:53 -0700 Subject: [PATCH] Make MSC2858 implementation match the unstable policy of the spec See https://github.com/matrix-org/matrix-doc/pull/2858/files#r543567196 --- .../main/java/org/matrix/android/sdk/api/auth/Constants.kt | 1 + .../android/sdk/internal/auth/data/LoginFlowResponse.kt | 2 +- .../main/java/im/vector/app/features/login/LoginViewState.kt | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/Constants.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/Constants.kt index 871c2559f8..7d18aba627 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/Constants.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/Constants.kt @@ -33,5 +33,6 @@ const val REGISTER_FALLBACK_PATH = "/_matrix/static/client/register/" * Ref: https://matrix.org/docs/spec/client_server/latest#sso-client-login */ const val SSO_REDIRECT_PATH = "/_matrix/client/r0/login/sso/redirect" +const val MSC2858_SSO_REDIRECT_PATH = "/_matrix/client/unstable/org.matrix.msc2858/login/sso/redirect" const val SSO_REDIRECT_URL_PARAM = "redirectUrl" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/data/LoginFlowResponse.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/data/LoginFlowResponse.kt index c333b3524e..2b26115f30 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/data/LoginFlowResponse.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/data/LoginFlowResponse.kt @@ -42,6 +42,6 @@ internal data class LoginFlow( * the client can show a button for each of the supported providers * See MSC #2858 */ - @Json(name = "identity_providers") + @Json(name = "org.matrix.msc2858.identity_providers") val ssoIdentityProvider: List? ) diff --git a/vector/src/main/java/im/vector/app/features/login/LoginViewState.kt b/vector/src/main/java/im/vector/app/features/login/LoginViewState.kt index 383fd4a54e..606bd7dc21 100644 --- a/vector/src/main/java/im/vector/app/features/login/LoginViewState.kt +++ b/vector/src/main/java/im/vector/app/features/login/LoginViewState.kt @@ -72,9 +72,11 @@ data class LoginViewState( fun getSsoUrl(providerId: String?): String { return buildString { append(homeServerUrl?.trim { it == '/' }) - append(SSO_REDIRECT_PATH) if (providerId != null) { + append(MSC2858_SSO_REDIRECT_PATH) append("/$providerId") + } else { + append(SSO_REDIRECT_PATH) } // Set a redirect url we will intercept later appendParamToUrl(SSO_REDIRECT_URL_PARAM, VECTOR_REDIRECT_URL)