Merge "Fix bug that filters out system providers" into udc-dev am: b23ec97238

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23205960

Change-Id: I7887c0b4fda9ebd2c991cf32b35c981c8a85aa2c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Reema Bajwa
2023-05-12 21:40:00 +00:00
committed by Automerger Merge Worker

View File

@@ -150,7 +150,7 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
List<CredentialOption> filteredOptions = new ArrayList<>();
for (CredentialOption option : clientRequest.getCredentialOptions()) {
if (providerCapabilities.contains(option.getType())
&& isProviderAllowed(option, info.getComponentName())
&& isProviderAllowed(option, info)
&& checkSystemProviderRequirement(option, info.isSystemProvider())) {
Slog.i(TAG, "Option of type: " + option.getType() + " meets all filtering"
+ "conditions");
@@ -167,9 +167,14 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
return null;
}
private static boolean isProviderAllowed(CredentialOption option, ComponentName componentName) {
private static boolean isProviderAllowed(CredentialOption option,
CredentialProviderInfo providerInfo) {
if (providerInfo.isSystemProvider()) {
// Always allow system providers , including the remote provider
return true;
}
if (!option.getAllowedProviders().isEmpty() && !option.getAllowedProviders().contains(
componentName)) {
providerInfo.getComponentName())) {
Slog.i(TAG, "Provider allow list specified but does not contain this provider");
return false;
}