You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2012/10/05 14:03:02 UTC
svn commit: r1394467 - in /sling/trunk:
installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
launchpad/builder/src/main/bundles/list.xml
Author: cziegeler
Date: Fri Oct 5 12:03:02 2012
New Revision: 1394467
URL: http://svn.apache.org/viewvc?rev=1394467&view=rev
Log:
FELIX-2578 : Filter value should be escaped
Modified:
sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
sling/trunk/launchpad/builder/src/main/bundles/list.xml
Modified: sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java?rev=1394467&r1=1394466&r2=1394467&view=diff
==============================================================================
--- sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java (original)
+++ sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java Fri Oct 5 12:03:02 2012
@@ -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) {
Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1394467&r1=1394466&r2=1394467&view=diff
==============================================================================
--- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original)
+++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Fri Oct 5 12:03:02 2012
@@ -228,7 +228,7 @@
<bundle>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.installer.factory.configuration</artifactId>
- <version>1.0.8</version>
+ <version>1.0.9-SNAPSHOT</version>
</bundle>
<bundle>
<groupId>org.apache.sling</groupId>