This is an automated email from the ASF dual-hosted git repository.
kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new cb7f4f9c56 Throw exception on illegal mapping in
NamespacePermision.getEquivalent() (#5898)
cb7f4f9c56 is described below
commit cb7f4f9c56731a59b5cb498b503f34dbd511daae
Author: Dom G. <[email protected]>
AuthorDate: Fri Sep 19 16:00:04 2025 -0400
Throw exception on illegal mapping in NamespacePermision.getEquivalent()
(#5898)
---
.../org/apache/accumulo/core/security/NamespacePermission.java | 3 ++-
.../apache/accumulo/core/security/NamespacePermissionsTest.java | 8 +++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git
a/core/src/main/java/org/apache/accumulo/core/security/NamespacePermission.java
b/core/src/main/java/org/apache/accumulo/core/security/NamespacePermission.java
index 64ecc511ba..d6b69ad3ed 100644
---
a/core/src/main/java/org/apache/accumulo/core/security/NamespacePermission.java
+++
b/core/src/main/java/org/apache/accumulo/core/security/NamespacePermission.java
@@ -125,7 +125,8 @@ public enum NamespacePermission {
case DROP_NAMESPACE:
return NamespacePermission.DROP_NAMESPACE;
case GRANT:
- return NamespacePermission.ALTER_NAMESPACE;
+ throw new IllegalArgumentException(
+ "SystemPermission.GRANT has no equivalent NamespacePermission.
GRANT operations require special handling in SecurityOperation.");
case CREATE_NAMESPACE:
case CREATE_USER:
case DROP_USER:
diff --git
a/core/src/test/java/org/apache/accumulo/core/security/NamespacePermissionsTest.java
b/core/src/test/java/org/apache/accumulo/core/security/NamespacePermissionsTest.java
index 50daf3e3ed..31a842cdcb 100644
---
a/core/src/test/java/org/apache/accumulo/core/security/NamespacePermissionsTest.java
+++
b/core/src/test/java/org/apache/accumulo/core/security/NamespacePermissionsTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.accumulo.core.security;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.EnumSet;
@@ -33,7 +34,12 @@ public class NamespacePermissionsTest {
set.remove(NamespacePermission.getEquivalent(permission));
}
for (SystemPermission permission : SystemPermission.values()) {
- set.remove(NamespacePermission.getEquivalent(permission));
+ if (permission == SystemPermission.GRANT) {
+ assertThrows(IllegalArgumentException.class,
+ () -> NamespacePermission.getEquivalent(permission), "GRANT has no
equivalent");
+ } else {
+ set.remove(NamespacePermission.getEquivalent(permission));
+ }
}
assertTrue(set.isEmpty(),