diff options
author | 2022-10-13 11:43:23 -0700 | |
---|---|---|
committer | 2022-10-18 11:12:41 -0700 | |
commit | 3ad191796dea967c4ad8b2ecfc61470978f0eaca (patch) | |
tree | 7b322fac2bfa7afbec51a9ca9d1ad4b770821534 | |
parent | 9d4d0c100ec85b2b938278c588297eea6dcaf98e (diff) |
Throw exception when scheme policy isn't found
With appop policy we can't return a default denial anymore. Also
exceptions are easier to debug than unexpected results.
Test: Build
Bug: 182523293
Change-Id: I2b934de0bdd662c20e24a0b3303d6d57cc34de04
-rw-r--r-- | service/java/com/android/permission/access/AccessPolicy.kt | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/service/java/com/android/permission/access/AccessPolicy.kt b/service/java/com/android/permission/access/AccessPolicy.kt index 4c21e13ec..87d2cb6cd 100644 --- a/service/java/com/android/permission/access/AccessPolicy.kt +++ b/service/java/com/android/permission/access/AccessPolicy.kt @@ -19,7 +19,6 @@ package com.android.permission.access import com.android.permission.access.appop.PackageAppOpPolicy import com.android.permission.access.appop.UidAppOpPolicy import com.android.permission.access.external.PackageState -import com.android.permission.access.permission.PermissionFlags import com.android.permission.access.permission.UidPermissionPolicy import com.android.permission.access.util.* // ktlint-disable no-wildcard-imports @@ -38,9 +37,8 @@ class AccessPolicy private constructor( ) fun getDecision(subject: AccessUri, `object`: AccessUri, state: AccessState): Int { - // TODO: Warn when not found? - val schemePolicy = getSchemePolicy(subject, `object`) - ?: return PermissionFlags.DENIED + val schemePolicy = checkNotNull(getSchemePolicy(subject, `object`)) { "Scheme policy for " + + "subject=$subject object=$`object` does not exist."} return schemePolicy.getDecision(subject, `object`, state) } @@ -51,8 +49,8 @@ class AccessPolicy private constructor( oldState: AccessState, newState: AccessState ) { - // TODO: Warn when not found? - val schemePolicy = getSchemePolicy(subject, `object`) ?: return + val schemePolicy = checkNotNull(getSchemePolicy(subject, `object`)) { "Scheme policy for " + + "subject=$subject object=$`object` does not exist."} return schemePolicy.setDecision(subject, `object`, decision, oldState, newState) } |