diff --git a/auth0/src/main/java/com/auth0/android/request/internal/OidcUtils.kt b/auth0/src/main/java/com/auth0/android/request/internal/OidcUtils.kt index bcb22f678..c7abfce9b 100644 --- a/auth0/src/main/java/com/auth0/android/request/internal/OidcUtils.kt +++ b/auth0/src/main/java/com/auth0/android/request/internal/OidcUtils.kt @@ -1,7 +1,5 @@ package com.auth0.android.request.internal -import java.util.* - /** * Small utility class to handle OpenID Connect conformance */ @@ -19,8 +17,7 @@ internal object OidcUtils { */ fun includeRequiredScope(scope: String): String { val existingScopes = scope.split(" ") - .map { it.toLowerCase(Locale.ROOT) } - return if (!existingScopes.contains(REQUIRED_SCOPE)) { + return if (existingScopes.none { it == REQUIRED_SCOPE }) { (existingScopes + REQUIRED_SCOPE).joinToString(separator = " ").trim() } else { scope diff --git a/auth0/src/test/java/com/auth0/android/authentication/ParameterBuilderTest.java b/auth0/src/test/java/com/auth0/android/authentication/ParameterBuilderTest.java index 9f771166c..d36da9438 100755 --- a/auth0/src/test/java/com/auth0/android/authentication/ParameterBuilderTest.java +++ b/auth0/src/test/java/com/auth0/android/authentication/ParameterBuilderTest.java @@ -68,6 +68,18 @@ public void shouldSetRefreshToken() { assertThat(parameters, hasEntry("refresh_token", DEVICE)); } + @Test + public void shouldKeepScopeCaseWhenAddingRequiredScope() { + Map parameters = builder.setScope("profile read:Messages").asDictionary(); + assertThat(parameters, hasEntry("scope", "profile read:Messages openid")); + } + + @Test + public void shouldAddRequiredScopeWhenOnlyAnotherCaseIsPresent() { + Map parameters = builder.setScope("OpenID profile").asDictionary(); + assertThat(parameters, hasEntry("scope", "OpenID profile openid")); + } + @Test public void shouldSetScopeWithOfflineAccess() { Map parameters = builder.setScope(ParameterBuilder.SCOPE_OFFLINE_ACCESS).asDictionary();