Repository: tomee Updated Branches: refs/heads/tomee-1.7.x e43b197d2 -> 3c2a2e533
backport cipher change from tomee 7 Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3c2a2e53 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3c2a2e53 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3c2a2e53 Branch: refs/heads/tomee-1.7.x Commit: 3c2a2e533148c7f7aad1006b93f26a1d20edd219 Parents: e43b197 Author: Ivan Junckes Filho <[email protected]> Authored: Wed Jan 4 17:17:51 2017 -0200 Committer: Ivan Junckes Filho <[email protected]> Committed: Wed Jan 4 17:17:51 2017 -0200 ---------------------------------------------------------------------- .../openejb/assembler/classic/Assembler.java | 2 +- .../openejb/util/PropertyPlaceHolderHelper.java | 18 +++++++++++++++--- .../DataSourceDefinitionPlaceHolderTest.java | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/3c2a2e53/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java index e1a33b2..46ff758 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java @@ -2671,7 +2671,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A } }); - final Properties props = PropertyPlaceHolderHelper.holds(serviceInfo.properties); + final Properties props = PropertyPlaceHolderHelper.simpleHolds(serviceInfo.properties); if (serviceInfo.properties.containsKey("Definition")) { try { // we catch classcast etc..., if it fails it is not important final InputStream is = new ByteArrayInputStream(serviceInfo.properties.getProperty("Definition").getBytes()); http://git-wip-us.apache.org/repos/asf/tomee/blob/3c2a2e53/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java b/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java index b3d0283..57f7102 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java @@ -85,8 +85,11 @@ public final class PropertyPlaceHolderHelper { } public static String value(final String aw) { - if (aw == null || !aw.contains(PREFIX) || !aw.contains(SUFFIX)) { - return aw; + if (aw == null) { + return null; + } + if (!aw.contains(PREFIX) || !aw.contains(SUFFIX)) { + return decryptIfNeeded(aw); } String value = CACHE.getProperty(aw); @@ -99,7 +102,15 @@ public final class PropertyPlaceHolderHelper { return value; } + public static Properties simpleHolds(final Properties properties) { + return holds(properties, false); + } + public static Properties holds(final Properties properties) { + return holds(properties, true); + } + + private static Properties holds(final Properties properties, final boolean cache) { // we can put null values in SuperProperties, since properties is often of this type we need to tolerate it final Properties updated = new SuperProperties(); if (properties == null) { @@ -109,7 +120,8 @@ public final class PropertyPlaceHolderHelper { for (final Map.Entry<Object, Object> entry : properties.entrySet()) { final Object rawValue = entry.getValue(); if (rawValue instanceof String) { - updated.put(entry.getKey(), value((String) rawValue)); + final String value = (String) rawValue; + updated.put(entry.getKey(), cache ? value(value) : simpleValue(value)); } else { updated.put(entry.getKey(), rawValue); } http://git-wip-us.apache.org/repos/asf/tomee/blob/3c2a2e53/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java index d98b9ba..85775a7 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java @@ -56,7 +56,7 @@ public class DataSourceDefinitionPlaceHolderTest { properties.setProperty("jndi", "java:comp/env/superDS"); properties.setProperty("driver", "org.hsqldb.jdbc.JDBCDataSource"); properties.setProperty("user", "sa"); - properties.setProperty("pwd", ""); + properties.setProperty("pwd", "cipher:Static3DES:snYpqPMRcXg="); properties.setProperty("url", "jdbc:hsqldb:mem:superDS"); return properties; } @@ -86,7 +86,7 @@ public class DataSourceDefinitionPlaceHolderTest { final BasicDataSource bds = (BasicDataSource) ds; assertEquals("sa", bds.getUsername()); - assertEquals("", bds.getPassword()); + assertEquals("hello", bds.getPassword()); final Field fieldDs = bds.getClass().getDeclaredField("ds"); fieldDs.setAccessible(true);
