Skip to content

Commit

Permalink
cleanup properties support, make properties injection safe
Browse files Browse the repository at this point in the history
git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@489 c6a108a4-781c-0410-a6c6-c2d559e19af0
  • Loading branch information
pstoellberger committed Jan 23, 2012
1 parent c75477a commit bbe5864
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ abstract class XmlaOlap4jConnection implements OlapConnection {
* calls as part of &lt;PropertyList/&gt;.<br />
* Can be passed to connection via connection string properties.
*/
private final Properties databaseProperties;
private final Map<String,String> databaseProperties;

private boolean autoCommit;
private boolean readOnly;
Expand Down Expand Up @@ -186,7 +186,7 @@ abstract class XmlaOlap4jConnection implements OlapConnection {

final Map<String, String> map = parseConnectString(url, info);

this.databaseProperties = new Properties();
this.databaseProperties = new HashMap<String,String>();
for (String infoKey : map.keySet()) {
boolean addProperty = true;
for (XmlaOlap4jDriver.Property p
Expand Down Expand Up @@ -739,17 +739,13 @@ public String getRoleName() {
return roleName;
}

public List<String> getAvailableRoleNames() {
public List<String> getAvailableRoleNames() throws OlapException {
Set<String> roleNames = new LinkedHashSet<String>();
try {
for (Catalog catalog : getOlapCatalogs()) {
List<String> catalogRoles =
((XmlaOlap4jCatalog) catalog).getAvailableRoles();
roleNames.addAll(catalogRoles);
}
} catch (OlapException e) {
for (Catalog catalog : getOlapCatalogs()) {
List<String> catalogRoles =
((XmlaOlap4jCatalog) catalog).getAvailableRoles();
roleNames.addAll(catalogRoles);
}

return new ArrayList<String>(roleNames);
}

Expand Down Expand Up @@ -944,10 +940,14 @@ public String generateRequest(
+ " <Properties>\n"
+ " <PropertyList>\n");

for (Object prop : databaseProperties.keySet()) {
buf.append(" <" + prop + ">");
xmlEncode(buf, databaseProperties.getProperty(prop.toString()));
buf.append("</" + prop + ">\n");
for (String prop : databaseProperties.keySet()) {
buf.append(" <");
xmlEncode(buf,prop);
buf.append(">");
xmlEncode(buf, databaseProperties.get(prop));
buf.append("</");
xmlEncode(buf, prop);
buf.append(">");
}

// Add the datasource node only if this request requires it.
Expand Down

0 comments on commit bbe5864

Please sign in to comment.