Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b1c5442 authored by Omer Ozer's avatar Omer Ozer Committed by Android (Google) Code Review
Browse files

Merge "Remove capability checks for cred desc apis." into udc-dev

parents 05f4f569 12026451
Loading
Loading
Loading
Loading
+0 −58
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import android.content.pm.ServiceInfo;
import android.credentials.ClearCredentialStateRequest;
import android.credentials.CreateCredentialException;
import android.credentials.CreateCredentialRequest;
import android.credentials.CredentialDescription;
import android.credentials.CredentialManager;
import android.credentials.CredentialOption;
import android.credentials.CredentialProviderInfo;
@@ -296,11 +295,6 @@ public final class CredentialManagerService
                            mContext,
                            UserHandle.getCallingUserId(),
                            session,
                            CredentialProviderInfoFactory.getCredentialProviderFromPackageName(
                                    mContext, UserHandle.getCallingUserId() ,
                                            result.second.mPackageName,
                                            CredentialManager.PROVIDER_FILTER_ALL_PROVIDERS,
                                    new HashSet<>()),
                            session.mClientAppInfo,
                            result.second.mPackageName,
                            result.first));
@@ -752,44 +746,6 @@ public final class CredentialManagerService

            enforceCallingPackage(callingPackage, Binder.getCallingUid());

            List<CredentialProviderInfo> services =
                    getServicesForCredentialDescription(UserHandle.getCallingUserId());

            List<String> providers =
                    services.stream()
                            .map(
                                    credentialProviderInfo ->
                                            credentialProviderInfo.getServiceInfo().packageName)
                            .toList();

            if (!providers.contains(callingPackage)) {
                throw new NonCredentialProviderCallerException(callingPackage);
            }

            List<CredentialProviderInfo> matchingService =
                    services.stream()
                            .filter(
                                    credentialProviderInfo ->
                                            credentialProviderInfo
                                                    .getServiceInfo()
                                                    .packageName
                                                    .equals(callingPackage))
                            .toList();

            CredentialProviderInfo credentialProviderInfo = matchingService.get(0);

            Set<String> supportedTypes =
                    request.getCredentialDescriptions().stream()
                            .map(CredentialDescription::getType)
                            .filter(credentialProviderInfo::hasCapability)
                            .collect(Collectors.toSet());

            if (supportedTypes.size() != request.getCredentialDescriptions().size()) {
                throw new IllegalArgumentException(
                        "CredentialProvider does not support one or more"
                                + "of the registered types. Check your XML entry.");
            }

            CredentialDescriptionRegistry session =
                    CredentialDescriptionRegistry.forUser(UserHandle.getCallingUserId());

@@ -808,20 +764,6 @@ public final class CredentialManagerService

            enforceCallingPackage(callingPackage, Binder.getCallingUid());

            List<CredentialProviderInfo> services =
                    getServicesForCredentialDescription(UserHandle.getCallingUserId());

            List<String> providers =
                    services.stream()
                            .map(
                                    credentialProviderInfo ->
                                            credentialProviderInfo.getServiceInfo().packageName)
                            .toList();

            if (!providers.contains(callingPackage)) {
                throw new NonCredentialProviderCallerException(callingPackage);
            }

            CredentialDescriptionRegistry session =
                    CredentialDescriptionRegistry.forUser(UserHandle.getCallingUserId());

+3 −2
Original line number Diff line number Diff line
@@ -72,7 +72,8 @@ public final class ProviderClearSession extends ProviderSession<ClearCredential
            ProviderInternalCallback callbacks,
            int userId, RemoteCredentialService remoteCredentialService,
            ClearCredentialStateRequest providerRequest) {
        super(context, info, providerRequest, callbacks, userId, remoteCredentialService);
        super(context, providerRequest, callbacks, info.getComponentName(),
                userId, remoteCredentialService);
        setStatus(Status.PENDING);
    }

@@ -95,7 +96,7 @@ public final class ProviderClearSession extends ProviderSession<ClearCredential
    /** Called when provider service dies. */
    @Override // Callback from the remote provider
    public void onProviderServiceDied(RemoteCredentialService service) {
        if (service.getComponentName().equals(mProviderInfo.getServiceInfo().getComponentName())) {
        if (service.getComponentName().equals(mComponentName)) {
            updateStatusAndInvokeCallback(Status.SERVICE_DEAD);
        } else {
            Slog.i(TAG, "Component names different in onProviderServiceDied - "
+2 −2
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ public final class ProviderCreateSession extends ProviderSession<
            @NonNull BeginCreateCredentialRequest beginCreateRequest,
            @NonNull CreateCredentialRequest completeCreateRequest,
            String hybridService) {
        super(context, info, beginCreateRequest, callbacks, userId,
        super(context, beginCreateRequest, callbacks, info.getComponentName(), userId,
                remoteCredentialService);
        mCompleteRequest = completeCreateRequest;
        setStatus(Status.PENDING);
@@ -161,7 +161,7 @@ public final class ProviderCreateSession extends ProviderSession<
    /** Called when provider service dies. */
    @Override
    public void onProviderServiceDied(RemoteCredentialService service) {
        if (service.getComponentName().equals(mProviderInfo.getServiceInfo().getComponentName())) {
        if (service.getComponentName().equals(mComponentName)) {
            updateStatusAndInvokeCallback(Status.SERVICE_DEAD);
        } else {
            Slog.i(TAG, "Component names different in onProviderServiceDied - "
+3 −2
Original line number Diff line number Diff line
@@ -169,7 +169,8 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
            CallingAppInfo callingAppInfo,
            Map<String, CredentialOption> beginGetOptionToCredentialOptionMap,
            String hybridService) {
        super(context, info, beginGetRequest, callbacks, userId, remoteCredentialService);
        super(context, beginGetRequest, callbacks, info.getComponentName() ,
                userId, remoteCredentialService);
        mCompleteRequest = completeGetRequest;
        mCallingAppInfo = callingAppInfo;
        setStatus(Status.PENDING);
@@ -196,7 +197,7 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential
    /** Called when provider service dies. */
    @Override // Callback from the remote provider
    public void onProviderServiceDied(RemoteCredentialService service) {
        if (service.getComponentName().equals(mProviderInfo.getServiceInfo().getComponentName())) {
        if (service.getComponentName().equals(mComponentName)) {
            updateStatusAndInvokeCallback(Status.SERVICE_DEAD);
        } else {
            Slog.i(TAG, "Component names different in onProviderServiceDied - "
+4 −5
Original line number Diff line number Diff line
@@ -19,10 +19,10 @@ package com.android.server.credentials;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.credentials.CredentialOption;
import android.credentials.CredentialProviderInfo;
import android.credentials.GetCredentialException;
import android.credentials.GetCredentialResponse;
import android.credentials.ui.Entry;
@@ -64,7 +64,6 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
            @NonNull Context context,
            @UserIdInt int userId,
            @NonNull GetRequestSession getRequestSession,
            @NonNull CredentialProviderInfo credentialProviderInfo,
            @NonNull CallingAppInfo callingAppInfo,
            @NonNull String credentialProviderPackageName,
            @NonNull CredentialOption requestOption) {
@@ -72,7 +71,6 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
                context,
                userId,
                getRequestSession,
                credentialProviderInfo,
                callingAppInfo,
                credentialProviderPackageName,
                requestOption);
@@ -94,11 +92,12 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
    protected ProviderRegistryGetSession(@NonNull Context context,
            @NonNull int userId,
            @NonNull GetRequestSession session,
            @NonNull CredentialProviderInfo credentialProviderInfo,
            @NonNull CallingAppInfo callingAppInfo,
            @NonNull String servicePackageName,
            @NonNull CredentialOption requestOption) {
        super(context, credentialProviderInfo, requestOption, session, userId, null);
        super(context, requestOption, session,
                new ComponentName(servicePackageName, servicePackageName) ,
                userId, null);
        mCredentialDescriptionRegistry = CredentialDescriptionRegistry.forUser(userId);
        mCallingAppInfo = callingAppInfo;
        mCredentialProviderPackageName = servicePackageName;
Loading