Merge pull request #1277 from vector-im/feature/sso
Use correct sso url
This commit is contained in:
commit
8bd4cc8f54
@ -43,6 +43,7 @@ Bugfix 🐛:
|
|||||||
- RiotX now uses as many threads as it needs to do work and send messages (#1221)
|
- RiotX now uses as many threads as it needs to do work and send messages (#1221)
|
||||||
- Fix issue with media path (#1227)
|
- Fix issue with media path (#1227)
|
||||||
- Add user to direct chat by user id (#1065)
|
- Add user to direct chat by user id (#1065)
|
||||||
|
- Use correct URL for SSO connection (#1178)
|
||||||
|
|
||||||
Translations 🗣:
|
Translations 🗣:
|
||||||
-
|
-
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2020 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.matrix.android.api.auth
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path to use when the client does not supported any or all login flows
|
||||||
|
* Ref: https://matrix.org/docs/spec/client_server/latest#login-fallback
|
||||||
|
* */
|
||||||
|
const val LOGIN_FALLBACK_PATH = "/_matrix/static/client/login/"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path to use when the client does not supported any or all registration flows
|
||||||
|
* Not documented
|
||||||
|
*/
|
||||||
|
const val REGISTER_FALLBACK_PATH = "/_matrix/static/client/register/"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path to use when the client want to connect using SSO
|
||||||
|
* Ref: https://matrix.org/docs/spec/client_server/latest#sso-client-login
|
||||||
|
*/
|
||||||
|
const val SSO_FALLBACK_PATH = "/_matrix/client/r0/login/sso/redirect"
|
||||||
|
|
||||||
|
const val SSO_REDIRECT_URL_PARAM = "redirectUrl"
|
@ -31,9 +31,14 @@ import android.webkit.WebView
|
|||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import com.airbnb.mvrx.activityViewModel
|
import com.airbnb.mvrx.activityViewModel
|
||||||
|
import im.vector.matrix.android.api.auth.LOGIN_FALLBACK_PATH
|
||||||
|
import im.vector.matrix.android.api.auth.REGISTER_FALLBACK_PATH
|
||||||
|
import im.vector.matrix.android.api.auth.SSO_FALLBACK_PATH
|
||||||
|
import im.vector.matrix.android.api.auth.SSO_REDIRECT_URL_PARAM
|
||||||
import im.vector.matrix.android.api.auth.data.Credentials
|
import im.vector.matrix.android.api.auth.data.Credentials
|
||||||
import im.vector.matrix.android.internal.di.MoshiProvider
|
import im.vector.matrix.android.internal.di.MoshiProvider
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
|
import im.vector.riotx.core.extensions.appendParamToUrl
|
||||||
import im.vector.riotx.core.utils.AssetReader
|
import im.vector.riotx.core.utils.AssetReader
|
||||||
import im.vector.riotx.features.signout.soft.SoftLogoutAction
|
import im.vector.riotx.features.signout.soft.SoftLogoutAction
|
||||||
import im.vector.riotx.features.signout.soft.SoftLogoutViewModel
|
import im.vector.riotx.features.signout.soft.SoftLogoutViewModel
|
||||||
@ -123,14 +128,24 @@ class LoginWebFragment @Inject constructor(
|
|||||||
val url = buildString {
|
val url = buildString {
|
||||||
append(state.homeServerUrl?.trim { it == '/' })
|
append(state.homeServerUrl?.trim { it == '/' })
|
||||||
if (state.signMode == SignMode.SignIn) {
|
if (state.signMode == SignMode.SignIn) {
|
||||||
append("/_matrix/static/client/login/")
|
if (state.loginMode == LoginMode.Sso) {
|
||||||
|
append(SSO_FALLBACK_PATH)
|
||||||
|
// We do not want to deal with the result, so let the fallback login page to handle it for us
|
||||||
|
appendParamToUrl(SSO_REDIRECT_URL_PARAM,
|
||||||
|
buildString {
|
||||||
|
append(state.homeServerUrl?.trim { it == '/' })
|
||||||
|
append(LOGIN_FALLBACK_PATH)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
append(LOGIN_FALLBACK_PATH)
|
||||||
|
}
|
||||||
state.deviceId?.takeIf { it.isNotBlank() }?.let {
|
state.deviceId?.takeIf { it.isNotBlank() }?.let {
|
||||||
// But https://github.com/matrix-org/synapse/issues/5755
|
// But https://github.com/matrix-org/synapse/issues/5755
|
||||||
append("?device_id=$it")
|
appendParamToUrl("device_id", it)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// MODE_REGISTER
|
// MODE_REGISTER
|
||||||
append("/_matrix/static/client/register/")
|
append(REGISTER_FALLBACK_PATH)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user