summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Severson <evanseverson@google.com> 2022-10-13 11:43:23 -0700
committer Evan Severson <evanseverson@google.com> 2022-10-18 11:12:41 -0700
commit3ad191796dea967c4ad8b2ecfc61470978f0eaca (patch)
tree7b322fac2bfa7afbec51a9ca9d1ad4b770821534
parent9d4d0c100ec85b2b938278c588297eea6dcaf98e (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.kt10
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)
}