Skip to content

Commit c756cac

Browse files
committed
2 parents 3bf1b13 + b1e33fb commit c756cac

25 files changed

+251
-60
lines changed

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
vNext
22
----------
3+
- [MAJOR] Pass google id token to broker for enabling Sign in with Google (#2573)
34
- [MINOR] Organize browser selection classes and change signature for get AuthorizationStrategy (#2564)
45
- [MINOR] Add support for OneBox Environment (#2559)
56
- [MINOR] Add support for claims requests for native authentication (#2572)

common/src/main/java/com/microsoft/identity/common/adal/internal/AuthenticationConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ public static final class Broker {
605605
*
606606
* @see <a href="https://identitydivision.visualstudio.com/DevEx/_git/AuthLibrariesApiReview?path=/%5BAndroid%5D%20Broker%20API/broker_protocol_versions.md">Android Auth Broker Protocol Versions</a>
607607
*/
608-
public static final String LATEST_MSAL_TO_BROKER_PROTOCOL_VERSION_CODE = "16.0";
608+
public static final String LATEST_MSAL_TO_BROKER_PROTOCOL_VERSION_CODE = "17.0";
609609

610610
/**
611611
* The maximum msal-to-broker protocol version known by clients such as MSAL Android.

common/src/main/java/com/microsoft/identity/common/internal/broker/BrokerRequest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import androidx.annotation.Nullable;
2727

2828
import com.google.gson.annotations.SerializedName;
29+
import com.microsoft.identity.common.internal.msafederation.google.SignInWithGoogleCredential;
2930
import com.microsoft.identity.common.java.authscheme.AbstractAuthenticationScheme;
3031
import com.microsoft.identity.common.java.opentelemetry.SerializableSpanContext;
3132
import com.microsoft.identity.common.java.providers.oauth2.OpenIdConnectPromptParameter;
@@ -79,6 +80,7 @@ private static final class SerializedNames {
7980
final static String PREFERRED_AUTH_METHOD = "preferred_auth_method";
8081
final static String ACCOUNT_TRANSFER_TOKEN = "account_transfer_token";
8182
final static String SUPPRESS_ACCOUNT_PICKER = "suppress_account_picker";
83+
final static String SIGN_IN_WITH_GOOGLE_CREDENTIAL = "sign_in_with_google_credential";
8284
}
8385

8486
/**
@@ -266,4 +268,8 @@ private static final class SerializedNames {
266268
*/
267269
@SerializedName(SerializedNames.SUPPRESS_ACCOUNT_PICKER)
268270
private boolean mSuppressAccountPicker;
271+
272+
@Nullable
273+
@SerializedName(SerializedNames.SIGN_IN_WITH_GOOGLE_CREDENTIAL)
274+
private SignInWithGoogleCredential mSignInWithGoogleCredential;
269275
}

common/src/main/java/com/microsoft/identity/common/internal/commands/parameters/AndroidActivityInteractiveTokenCommandParameters.java renamed to common/src/main/java/com/microsoft/identity/common/internal/commands/parameters/AndroidInteractiveTokenCommandParameters.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import android.app.Activity;
2626

2727
import com.microsoft.identity.common.internal.controllers.BrokerMsalController;
28+
import com.microsoft.identity.common.internal.msafederation.google.SignInWithGoogleCredential;
2829
import com.microsoft.identity.common.java.commands.parameters.InteractiveTokenCommandParameters;
2930

3031
import lombok.EqualsAndHashCode;
@@ -39,6 +40,8 @@
3940
@Getter
4041
@SuperBuilder(toBuilder = true)
4142
@EqualsAndHashCode(callSuper = true)
42-
public class AndroidActivityInteractiveTokenCommandParameters extends InteractiveTokenCommandParameters {
43+
public class AndroidInteractiveTokenCommandParameters extends InteractiveTokenCommandParameters {
4344
private transient final Activity activity;
45+
46+
private final SignInWithGoogleCredential signInWithGoogleCredential;
4447
}

common/src/main/java/com/microsoft/identity/common/internal/controllers/BrokerMsalController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
import com.microsoft.identity.common.internal.cache.ClientActiveBrokerCache;
6868
import com.microsoft.identity.common.internal.cache.HelloCache;
6969
import com.microsoft.identity.common.internal.cache.HelloCacheResult;
70-
import com.microsoft.identity.common.internal.commands.parameters.AndroidActivityInteractiveTokenCommandParameters;
70+
import com.microsoft.identity.common.internal.commands.parameters.AndroidInteractiveTokenCommandParameters;
7171
import com.microsoft.identity.common.internal.request.MsalBrokerRequestAdapter;
7272
import com.microsoft.identity.common.internal.result.MsalBrokerResultAdapter;
7373
import com.microsoft.identity.common.internal.telemetry.Telemetry;
@@ -358,8 +358,8 @@ public AcquireTokenResult acquireToken(final @NonNull InteractiveTokenCommandPar
358358
final Intent interactiveRequestIntent = getBrokerAuthorizationIntent(parameters);
359359

360360
Activity activity = null;
361-
if (parameters instanceof AndroidActivityInteractiveTokenCommandParameters) {
362-
activity = ((AndroidActivityInteractiveTokenCommandParameters) parameters).getActivity();
361+
if (parameters instanceof AndroidInteractiveTokenCommandParameters) {
362+
activity = ((AndroidInteractiveTokenCommandParameters) parameters).getActivity();
363363
}
364364

365365
//Pass this intent to the BrokerActivity which will be used to start this activity

common/src/main/java/com/microsoft/identity/common/internal/msafederation/IFederatedCredentialCallback.kt renamed to common/src/main/java/com/microsoft/identity/common/internal/msafederation/IMsaFederatedCredentialCallback.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ package com.microsoft.identity.common.internal.msafederation
2626
* Interface for Federated Credential Callback. Helps calling sign methods
2727
* async from java.
2828
*/
29-
interface IFederatedCredentialCallback<R : FederatedCredential> {
29+
interface IMsaFederatedCredentialCallback<R : MsaFederatedCredential> {
3030
/**
3131
* Called when the sign in is successful.
3232
*/

common/src/main/java/com/microsoft/identity/common/internal/msafederation/IFederatedSignInProvider.kt renamed to common/src/main/java/com/microsoft/identity/common/internal/msafederation/IMsaFederatedSignInProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ package com.microsoft.identity.common.internal.msafederation
2525
/**
2626
* Internal interface for Federated Sign In Providers.
2727
*/
28-
internal interface IFederatedSignInProvider {
29-
suspend fun signIn(): Result<FederatedCredential>
28+
internal interface IMsaFederatedSignInProvider {
29+
suspend fun signIn(): Result<MsaFederatedCredential>
3030
suspend fun signOut()
3131
}

common/src/main/java/com/microsoft/identity/common/internal/msafederation/FederatedCredential.kt renamed to common/src/main/java/com/microsoft/identity/common/internal/msafederation/MsaFederatedCredential.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
// THE SOFTWARE.
2323
package com.microsoft.identity.common.internal.msafederation
2424

25+
import com.google.gson.annotations.SerializedName
26+
import java.util.AbstractMap
27+
2528
/**
2629
* Represents credential artifact as result of successful sign in into a federated sign in provider
2730
* (Google/Apple). It can contain id token and/or auth code. See implementations for more details.
2831
*/
29-
abstract class FederatedCredential(val federatedSignInProviderName: FederatedSignInProviderName)
32+
abstract class MsaFederatedCredential(@SerializedName("signInProviderName") val signInProviderName: MsaFederatedSignInProviderName)

common/src/main/java/com/microsoft/identity/common/internal/msafederation/FederatedSignInParameters.kt renamed to common/src/main/java/com/microsoft/identity/common/internal/msafederation/MsaFederatedSignInParameters.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ package com.microsoft.identity.common.internal.msafederation
2525
/**
2626
* Parameters for Federated Sign In. e.g. SignInWithGoogleParameters for Google.
2727
*/
28-
abstract class FederatedSignInParameters {
29-
abstract val providerName: FederatedSignInProviderName
28+
abstract class MsaFederatedSignInParameters {
29+
abstract val providerName: MsaFederatedSignInProviderName
3030
}

common/src/main/java/com/microsoft/identity/common/internal/msafederation/FederatedSignInProviderFactory.kt renamed to common/src/main/java/com/microsoft/identity/common/internal/msafederation/MsaFederatedSignInProviderFactory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ import com.microsoft.identity.common.internal.msafederation.google.SignInWithGoo
2929
* Factory class to get the Federated Sign In Provider based on provider type in parameters
3030
* Currently only Google is supported.
3131
*/
32-
internal object FederatedSignInProviderFactory {
32+
internal object MsaFederatedSignInProviderFactory {
3333

3434
/**
3535
* Get the Federated Sign In Provider based on provider type in parameters.
3636
*/
37-
fun getProvider(parameters: FederatedSignInParameters): IFederatedSignInProvider {
37+
fun getProvider(parameters: MsaFederatedSignInParameters): IMsaFederatedSignInProvider {
3838
return when (parameters.providerName) {
39-
FederatedSignInProviderName.GOOGLE -> GoogleSignInProvider.create(parameters as SignInWithGoogleParameters, MsaFederationConstants.GOOGLE_MSA_WEB_CLIENT_ID)
39+
MsaFederatedSignInProviderName.GOOGLE -> GoogleSignInProvider.create(parameters as SignInWithGoogleParameters, MsaFederationConstants.GOOGLE_MSA_WEB_CLIENT_ID)
4040

4141
else -> {
4242
throw IllegalArgumentException("Unsupported provider type")

0 commit comments

Comments
 (0)