Skip to content

Commit c58103f

Browse files
authored
Fix oauth url handling (#3601)
1 parent 0326544 commit c58103f

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

libs/login-api-2/src/main/java/com/instructure/loginapi/login/activities/BaseLoginSignInActivity.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,14 @@ abstract class BaseLoginSignInActivity : BaseCanvasActivity(), OnAuthenticationS
106106

107107
companion object {
108108
const val ACCOUNT_DOMAIN = "accountDomain"
109-
const val SUCCESS_URL = "/canvas/login?code="
110-
const val ERROR_URL = "/canvas/login?error=access_denied"
109+
val SUCCESS_URL_COLLECTION = listOf(
110+
"/canvas/login?code=", //success url
111+
"login/oauth2/auth?code=" //legacy success url (needed for the fallback redirect_uri)
112+
)
113+
val ERROR_URL_COLLECTION = listOf(
114+
"/canvas/login?error=access_denied", //error url
115+
"/login/oauth2/auth?error=access_denied" //legacy error url (needed for the fallback redirect_uri)
116+
)
111117

112118
init {
113119
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
@@ -240,13 +246,14 @@ abstract class BaseLoginSignInActivity : BaseCanvasActivity(), OnAuthenticationS
240246
private fun handleShouldOverrideUrlLoading(view: WebView, url: String): Boolean {
241247
if (overrideUrlLoading(view, url)) return true
242248
return when {
243-
url.contains(SUCCESS_URL) -> {
249+
SUCCESS_URL_COLLECTION.any { url.contains(it) } -> {
250+
val responseUrl = SUCCESS_URL_COLLECTION.first { url.contains(it) }
244251
domain = accountDomain.domain!!
245-
val oAuthRequest = url.substring(url.indexOf(SUCCESS_URL) + SUCCESS_URL.length)
252+
val oAuthRequest = url.substring(url.indexOf(responseUrl) + responseUrl.length)
246253
getToken(clientId, clientSecret, oAuthRequest, mGetTokenCallback)
247254
true
248255
}
249-
url.contains(ERROR_URL) -> {
256+
ERROR_URL_COLLECTION.any { url.contains(it) } -> {
250257
clearCookies()
251258
loadUrl(view, authenticationURL, headers)
252259
true

0 commit comments

Comments
 (0)