Skip to content

Commit c1ac004

Browse files
fadidurahrpdome
andauthored
November Release PR (#1936)
November Release PR --------- Co-authored-by: Dome Pongmongkol <[email protected]> Co-authored-by: Dome Pongmongkol <[email protected]>
1 parent dcda2e0 commit c1ac004

File tree

6 files changed

+51
-39
lines changed

6 files changed

+51
-39
lines changed

changelog

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
MSAL Wiki : https://github.com/AzureAD/microsoft-authentication-library-for-android/wiki
2-
vNext
2+
Version 4.10.0
33
----------
4+
- [PATCH] Update common @16.2.0
45
- [PATCH] Fix NPE in SingleAccountPublicClientApplication.getPersistedCurrentAccount (#1933)
56
- [PATCH] Updating JSON version (#1932)
67
- [MINOR] Updating Moshi versions (#1926)

common

Submodule common updated 23 files

msal/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ task sourcesJar(type: Jar) {
188188

189189
// In dev, we want to keep the dependencies (common4j, common) to 1.0.+ to be able to be consumed by daily dev pipeline.
190190
// In release/*, we change these to specific versions being consumed.
191-
String commonVersion = project.hasProperty("distCommonVersion") ? project.distCommonVersion : "1.0.+"
191+
String commonVersion = project.hasProperty("distCommonVersion") ? project.distCommonVersion : "16.2.0"
192192

193193
dependencies {
194194
//Please leave this in... desugaring is currently disabled by default; however it's required for running some tests
@@ -402,4 +402,4 @@ tasks.whenTaskAdded { task ->
402402
// This is used to generate the pom file for publishing to external maven in maven-release-jobs.yml
403403
tasks.withType(GenerateMavenPom).all {
404404
destination = layout.buildDirectory.file("poms/${project.name}-${project.version}.pom").get().asFile
405-
}
405+
}

msal/src/main/java/com/microsoft/identity/client/AccountAdapter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ public List<ICacheRecord> filter(@NonNull final List<ICacheRecord> records) {
8282
for (final ICacheRecord cacheRecord : records) {
8383
final String acctHomeAccountId = cacheRecord.getAccount().getHomeAccountId();
8484
final String acctLocalAccountId = cacheRecord.getAccount().getLocalAccountId();
85-
if (acctHomeAccountId.contains(acctLocalAccountId)) {
85+
86+
// TODO: check the logic on broker side to make sure this value is NOT null.
87+
if (acctLocalAccountId != null &&
88+
acctHomeAccountId.contains(acctLocalAccountId)) {
8689
result.add(cacheRecord);
8790
}
8891
}

msal/src/main/java/com/microsoft/identity/client/PublicClientApplicationConfiguration.java

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,29 @@
2222
// THE SOFTWARE.
2323
package com.microsoft.identity.client;
2424

25+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.ACCOUNT_MODE;
26+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORITIES;
27+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORIZATION_IN_CURRENT_TASK;
28+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORIZATION_USER_AGENT;
29+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.BROWSER_SAFE_LIST;
30+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.CLIENT_CAPABILITIES;
31+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.CLIENT_ID;
32+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.ENVIRONMENT;
33+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.HANDLE_TASKS_WITH_NULL_TASKAFFINITY;
34+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.HTTP;
35+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.LOGGING;
36+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.MULTIPLE_CLOUDS_SUPPORTED;
37+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.POWER_OPT_CHECK_FOR_NETWORK_REQUEST_ENABLED;
38+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.PREFERRED_BROWSER;
39+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.REDIRECT_URI;
40+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.REQUIRED_BROKER_PROTOCOL_VERSION;
41+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.TELEMETRY;
42+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.USE_BROKER;
43+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEBAUTHN_CAPABLE;
44+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEB_VIEW_ZOOM_CONTROLS_ENABLED;
45+
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEB_VIEW_ZOOM_ENABLED;
46+
import static com.microsoft.identity.client.exception.MsalClientException.APP_MANIFEST_VALIDATION_ERROR;
47+
2548
import android.Manifest;
2649
import android.content.Context;
2750
import android.content.Intent;
@@ -44,16 +67,16 @@
4467
import com.microsoft.identity.client.exception.MsalClientException;
4568
import com.microsoft.identity.common.adal.internal.AuthenticationConstants;
4669
import com.microsoft.identity.common.adal.internal.AuthenticationSettings;
70+
import com.microsoft.identity.common.internal.authorities.UnknownAudience;
71+
import com.microsoft.identity.common.internal.broker.PackageHelper;
72+
import com.microsoft.identity.common.internal.logging.Logger;
73+
import com.microsoft.identity.common.internal.telemetry.TelemetryConfiguration;
4774
import com.microsoft.identity.common.java.authorities.Authority;
4875
import com.microsoft.identity.common.java.authorities.AzureActiveDirectoryAuthority;
4976
import com.microsoft.identity.common.java.authorities.Environment;
50-
import com.microsoft.identity.common.internal.authorities.UnknownAudience;
5177
import com.microsoft.identity.common.java.authorities.UnknownAuthority;
52-
import com.microsoft.identity.common.internal.broker.PackageHelper;
5378
import com.microsoft.identity.common.java.configuration.LibraryConfiguration;
54-
import com.microsoft.identity.common.internal.logging.Logger;
5579
import com.microsoft.identity.common.java.providers.oauth2.OAuth2TokenCache;
56-
import com.microsoft.identity.common.internal.telemetry.TelemetryConfiguration;
5780
import com.microsoft.identity.common.java.ui.AuthorizationAgent;
5881
import com.microsoft.identity.common.java.ui.BrowserDescriptor;
5982

@@ -63,29 +86,6 @@
6386

6487
import javax.crypto.SecretKey;
6588

66-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.ACCOUNT_MODE;
67-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORITIES;
68-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORIZATION_IN_CURRENT_TASK;
69-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.AUTHORIZATION_USER_AGENT;
70-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.BROWSER_SAFE_LIST;
71-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.CLIENT_CAPABILITIES;
72-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.CLIENT_ID;
73-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.ENVIRONMENT;
74-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.HANDLE_TASKS_WITH_NULL_TASKAFFINITY;
75-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.HTTP;
76-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.LOGGING;
77-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.MULTIPLE_CLOUDS_SUPPORTED;
78-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.POWER_OPT_CHECK_FOR_NETWORK_REQUEST_ENABLED;
79-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.PREFERRED_BROWSER;
80-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.REDIRECT_URI;
81-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.REQUIRED_BROKER_PROTOCOL_VERSION;
82-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.TELEMETRY;
83-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.USE_BROKER;
84-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEBAUTHN_CAPABLE;
85-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEB_VIEW_ZOOM_CONTROLS_ENABLED;
86-
import static com.microsoft.identity.client.PublicClientApplicationConfiguration.SerializedNames.WEB_VIEW_ZOOM_ENABLED;
87-
import static com.microsoft.identity.client.exception.MsalClientException.APP_MANIFEST_VALIDATION_ERROR;
88-
8989
public class PublicClientApplicationConfiguration {
9090
private static final String TAG = PublicClientApplicationConfiguration.class.getSimpleName();
9191

@@ -755,15 +755,23 @@ private boolean isValidAuthenticatorRedirectUri() {
755755
final PackageInfo info = mAppContext.getPackageManager().getPackageInfo(AuthenticationConstants.Broker.AZURE_AUTHENTICATOR_APP_PACKAGE_NAME, PackageManager.GET_SIGNATURES);
756756
if (info != null && info.signatures != null && info.signatures.length > 0) {
757757
final Signature signature = info.signatures[0];
758-
MessageDigest md = MessageDigest.getInstance("SHA");
759-
md.update(signature.toByteArray());
760-
final String signatureHash = Base64.encodeToString(md.digest(), Base64.NO_WRAP);
761-
if (AuthenticationConstants.Broker.AZURE_AUTHENTICATOR_APP_RELEASE_SIGNATURE.equalsIgnoreCase(signatureHash)
762-
|| AuthenticationConstants.Broker.AZURE_AUTHENTICATOR_APP_DEBUG_SIGNATURE.equalsIgnoreCase(signatureHash)) {
758+
759+
final MessageDigest md_sha512 = MessageDigest.getInstance("SHA-512");
760+
md_sha512.update(signature.toByteArray());
761+
final String sha512_signingCertThumbprint = Base64.encodeToString(md_sha512.digest(), Base64.NO_WRAP);
762+
763+
if (AuthenticationConstants.Broker.AZURE_AUTHENTICATOR_APP_RELEASE_SIGNATURE_SHA512.equalsIgnoreCase(sha512_signingCertThumbprint)
764+
|| AuthenticationConstants.Broker.AZURE_AUTHENTICATOR_APP_DEBUG_SIGNATURE_SHA512.equalsIgnoreCase(sha512_signingCertThumbprint)) {
765+
766+
// MSAL still uses SHA-1 format in redirect url.
767+
final MessageDigest md_sha1 = MessageDigest.getInstance("SHA");
768+
md_sha1.update(signature.toByteArray());
769+
final String sha1_signingCertThumbprint = Base64.encodeToString(md_sha1.digest(), Base64.NO_WRAP);
770+
763771
final Uri.Builder builder = new Uri.Builder();
764772
final Uri uri = builder.scheme("msauth")
765773
.authority(mAppContext.getPackageName())
766-
.appendPath(signatureHash)
774+
.appendPath(sha1_signingCertThumbprint)
767775
.build();
768776

769777
if (mRedirectUri.equalsIgnoreCase(uri.toString()) ||

msal/versioning/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#Wed Aug 01 15:24:11 PDT 2018
2-
versionName=4.9.0
2+
versionName=4.10.0
33
versionCode=0

0 commit comments

Comments
 (0)