Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import java.io.File;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import java.io.File;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;

public interface ConfigurationFile
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.Map;
import java.util.Stack;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.lang.StringUtils;
import org.wso2.andes.server.security.access.ObjectProperties;
import org.wso2.andes.server.security.access.ObjectType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import javax.security.auth.Subject;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import java.util.Arrays;
import java.util.List;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPluginFactory;
import org.wso2.andes.server.security.access.config.ConfigurationFile;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

import junit.framework.TestCase;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.wso2.andes.server.security.access.config.ConfigurationFile;
import org.wso2.andes.server.security.access.config.PlainConfiguration;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
package org.wso2.andes.server.plugins;

import junit.framework.TestCase;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration2.PropertiesConfiguration;
import org.wso2.andes.configuration.qpid.ServerConfiguration;
import org.wso2.andes.server.exchange.ExchangeType;
import org.wso2.andes.server.registry.ApplicationRegistry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;
import org.wso2.andes.server.security.AbstractPlugin;
import org.wso2.andes.server.security.Result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,22 @@
*/
package org.wso2.andes.server.security.access.plugins;

import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration2.CompositeConfiguration;
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration2.builder.fluent.Parameters;
import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration2.interpol.Lookup;
import org.apache.commons.configuration2.io.FileHandler;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPluginFactory;
import org.wso2.andes.server.security.Result;
Expand Down Expand Up @@ -86,9 +95,37 @@ public void validateConfiguration() throws ConfigurationException
// Valid Configuration either has xml links to new files
_finalConfig = new CompositeConfiguration(_configuration);
List subFiles = _configuration.getList("xml[@fileName]");
Parameters params = new Parameters();

for (Object subFile : subFiles)
{
_finalConfig.addConfiguration(new XMLConfiguration((String) subFile));
XMLConfiguration rootConfiguration = new XMLConfiguration();
rootConfiguration.setListDelimiterHandler(new DisabledListDelimiterHandler());
ConfigurationInterpolator interpolator = rootConfiguration.getInterpolator();
Map<String, Lookup> lookups = new HashMap<>(ConfigurationInterpolator.getDefaultPrefixLookups());
interpolator.addDefaultLookup(lookups.get("sys"));
interpolator.registerLookup("", new Lookup() {
@Override
public Object lookup(String key) {
String value = System.getProperty(key);
if (value != null) {
return value;
}
value = System.getenv(key);
return value;
}
});
rootConfiguration.setInterpolator(interpolator);
FileHandler xmlHandler = new FileHandler(rootConfiguration);
xmlHandler.load((new File((String) subFile)));
_finalConfig.addConfiguration(rootConfiguration);
// FileBasedConfigurationBuilder<XMLConfiguration> builder =
// new FileBasedConfigurationBuilder<>(XMLConfiguration.class)
// .configure(params.xml()
// .setFile(new File((String) subFile))
// .setThrowExceptionOnMissing(true)
// .setValidating(false));
// _finalConfig.addConfiguration(builder.getConfiguration());
}

// all rules must have an access attribute or a default value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,17 @@
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration2.builder.fluent.Parameters;
import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration2.interpol.Lookup;
import org.apache.commons.configuration2.io.FileHandler;
import org.wso2.andes.configuration.qpid.ServerConfiguration;
import org.wso2.andes.server.registry.ApplicationRegistry;
import org.wso2.andes.server.security.Result;
Expand Down Expand Up @@ -120,9 +128,38 @@ private Firewall initialisePlugin(String defaultAction, RuleInfo[] rules) throws
buf.write("</firewall>");
buf.close();



// Configure plugin
FirewallConfiguration config = new FirewallConfiguration();
config.setConfiguration("", new XMLConfiguration(confFile));
XMLConfiguration rootConfiguration = new XMLConfiguration();
rootConfiguration.setListDelimiterHandler(new DisabledListDelimiterHandler());
ConfigurationInterpolator interpolator = rootConfiguration.getInterpolator();
Map<String, Lookup> lookups = new HashMap<>(ConfigurationInterpolator.getDefaultPrefixLookups());
interpolator.addDefaultLookup(lookups.get("sys"));
interpolator.registerLookup("", new Lookup() {
@Override
public Object lookup(String key) {
String value = System.getProperty(key);
if (value != null) {
return value;
}
value = System.getenv(key);
return value;
}
});
rootConfiguration.setInterpolator(interpolator);
FileHandler xmlHandler = new FileHandler(rootConfiguration);
xmlHandler.load(confFile);

// Parameters params = new Parameters();
// FileBasedConfigurationBuilder<XMLConfiguration> builder =
// new FileBasedConfigurationBuilder<>(XMLConfiguration.class)
// .configure(params.xml()
// .setFile(confFile));

config.setConfiguration("", rootConfiguration);
//config.setConfiguration("", builder.getConfiguration());
Firewall plugin = new Firewall();
plugin.configure(config);
return plugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.io.FileNotFoundException;
import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.nio.file.Paths;
import java.text.DateFormat;
Expand All @@ -31,9 +32,11 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Stack;
import java.util.concurrent.ConcurrentHashMap;

Expand All @@ -42,11 +45,19 @@
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.llom.OMElementImpl;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
import org.apache.commons.configuration2.CombinedConfiguration;
import org.apache.commons.configuration2.CompositeConfiguration;
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration2.builder.fluent.Parameters;
import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration2.interpol.Lookup;
import org.apache.commons.configuration2.io.FileHandler;
import org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand Down Expand Up @@ -165,15 +176,61 @@ public static void initialize(int portOffset) throws AndesException {
log.info("Main andes configuration located at : " + brokerConfigFilePath);

try {

compositeConfiguration = new CompositeConfiguration();
compositeConfiguration.setDelimiterParsingDisabled(true);
// Create concrete builder parameters
// XMLConfiguration rootConfiguration = new XMLConfiguration();
// rootConfiguration.setListDelimiterHandler(new DisabledListDelimiterHandler());

XMLConfiguration rootConfiguration = new XMLConfiguration();
rootConfiguration.setDelimiterParsingDisabled(true);
rootConfiguration.setFileName(brokerConfigFilePath);
rootConfiguration.setExpressionEngine(new XPathExpressionEngine());
rootConfiguration.load();
rootConfiguration.setListDelimiterHandler(new DisabledListDelimiterHandler());

// Custom interpolator to ensure system properties are available
ConfigurationInterpolator interpolator = rootConfiguration.getInterpolator();
// interpolator.registerLookup("", key -> {
// // Lookup order: system properties first, then default map
// String value = System.getProperty(key);
// if (value != null) {
// return value;
// }
// // Example default values
// Map<String, String> defaults = new HashMap<>();
// defaults.put("brokerHome", "/opt/broker");
// defaults.put("workDir", "/tmp/broker-work");
// return defaults.get(key);
// });
Map<String, Lookup> lookups = new HashMap<>(ConfigurationInterpolator.getDefaultPrefixLookups());
interpolator.addDefaultLookup(lookups.get("sys"));
interpolator.registerLookup("", new Lookup() {
@Override
public Object lookup(String key) {
String value = System.getProperty(key);
if (value != null) {
return value;
}
value = System.getenv(key);
// // Default values
// Map<String, String> defaults = new HashMap<>();
// defaults.put("brokerHome", "/opt/broker");
// defaults.put("workDir", "/tmp/broker-work");
return value;
}
});
rootConfiguration.setInterpolator(interpolator);

FileHandler xmlHandler = new FileHandler(rootConfiguration);
xmlHandler.load(new File(brokerConfigFilePath));

// Parameters params = new Parameters();
// FileBasedConfigurationBuilder<XMLConfiguration> builder =
// new FileBasedConfigurationBuilder<>(XMLConfiguration.class)
// .configure(params.xml()
// .setFileName(brokerConfigFilePath)
// .setThrowExceptionOnMissing(true)
// .setValidating(false)
// .setListDelimiterHandler(new DisabledListDelimiterHandler()));
// XMLConfiguration rootConfiguration = builder.getConfiguration();

compositeConfiguration = new CompositeConfiguration();
//rootConfiguration.load();
compositeConfiguration.addConfiguration(rootConfiguration);

//Decrypt and maintain secure vault property values in a map for cross-reference.
Expand Down Expand Up @@ -211,6 +268,9 @@ public static void initialize(int portOffset) throws AndesException {
String error = "Error occurred when trying to process cipher text in file : " + brokerConfigFilePath;
log.error(error, e);
throw new AndesException(error, e);
} catch (Throwable e) {
//log.error(e);
throw new AndesException("Error", e);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package org.wso2.andes.configuration.modules;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.lang.StringUtils;
import org.wso2.andes.configuration.AndesConfigurationManager;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import java.util.Map;
import java.util.Map.Entry;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPluginFactory;
import org.wso2.andes.server.registry.ApplicationRegistry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/
package org.wso2.andes.configuration.qpid;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration2.Configuration;


public class ExchangeConfiguration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
*/
package org.wso2.andes.configuration.qpid;

import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration2.CompositeConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.wso2.andes.exchange.ExchangeDefaults;
import org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin;

Expand Down
Loading