You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:43:12 UTC
[sling-org-apache-sling-installer-factory-configuration] 36/40:
FELIX-2578 : Filter value should be escaped
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.installer.factory.configuration-1.0.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-installer-factory-configuration.git
commit 380293d97c0aebd20d84376d67e23435399f6a88
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Oct 5 12:03:02 2012 +0000
FELIX-2578 : Filter value should be escaped
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/installer/factories/configuration@1394467 13f79535-47bb-0310-9956-ffa450edef68
---
.../factories/configuration/impl/ConfigUtil.java | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
index 552345c..43e4826 100644
--- a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
+++ b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
@@ -120,18 +120,28 @@ abstract class ConfigUtil {
return cleanedConfig;
}
+ /**
+ * Encode the value for the ldap filter: \, *, (, and ) should be escaped.
+ */
+ private static String encode(final String value) {
+ return value.replace("\\", "\\\\")
+ .replace("*", "\\*")
+ .replace("(", "\\(")
+ .replace(")", "\\)");
+ }
+
public static Configuration getConfiguration(final ConfigurationAdmin ca,
final String factoryPid,
final String configPid,
final boolean createIfNeeded)
- throws IOException, InvalidSyntaxException {
+ throws IOException, InvalidSyntaxException {
Configuration result = null;
if (factoryPid == null) {
if (createIfNeeded) {
result = ca.getConfiguration(configPid, null);
} else {
- String filter = "(" + Constants.SERVICE_PID + "=" + configPid
+ String filter = "(" + Constants.SERVICE_PID + "=" + encode(configPid)
+ ")";
Configuration[] configs = ca.listConfigurations(filter);
if (configs != null && configs.length > 0) {
@@ -142,15 +152,15 @@ abstract class ConfigUtil {
Configuration configs[] = null;
if ( configPid != null ) {
configs = ca.listConfigurations("(&("
- + ConfigurationAdmin.SERVICE_FACTORYPID + "=" + factoryPid
- + ")(" + Constants.SERVICE_PID + "=" + configPid
+ + ConfigurationAdmin.SERVICE_FACTORYPID + "=" + encode(factoryPid)
+ + ")(" + Constants.SERVICE_PID + "=" + encode(configPid)
+ "))");
}
if (configs == null || configs.length == 0) {
// check for old style with alias pid
configs = ca.listConfigurations(
"(&(" + ConfigurationAdmin.SERVICE_FACTORYPID
- + "=" + factoryPid + ")(" + ALIAS_KEY + "=" + configPid
+ + "=" + factoryPid + ")(" + ALIAS_KEY + "=" + encode(configPid)
+ "))");
if (configs == null || configs.length == 0) {
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.