From d7c2353c5f18cd9445217fc2e8c08fdd25824e65 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Sun, 11 Oct 2026 15:40:11 +0000
Subject: [PATCH] Merge branch 'master' into vharseko-patch-1
---
opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserAttr.java | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserAttr.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserAttr.java
index ea1f069..ce18c87 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserAttr.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserAttr.java
@@ -130,12 +130,14 @@
public static KeywordBindRule decode(String expression,
EnumBindRuleType type)
throws AciException {
- String[] vals=expression.split("#");
- if(vals.length != 2) {
+ // The attribute name cannot contain an octothorpe, but the value after it can.
+ final int sharpPos = expression.indexOf('#');
+ if (sharpPos < 0 || sharpPos == expression.length() - 1) {
LocalizableMessage message =
WARN_ACI_SYNTAX_INVALID_USERATTR_EXPRESSION.get(expression);
throw new AciException(message);
}
+ final String[] vals = { expression.substring(0, sharpPos), expression.substring(sharpPos + 1) };
UserAttrType userAttrType = UserAttrType.getType(vals[1]);
switch (userAttrType) {
case GROUPDN:
--
Gitblit v1.10.0