Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 91DB7108DF for ; Tue, 20 Oct 2015 10:31:24 +0000 (UTC) Received: (qmail 93169 invoked by uid 500); 20 Oct 2015 10:31:08 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 93125 invoked by uid 500); 20 Oct 2015 10:31:08 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 93116 invoked by uid 99); 20 Oct 2015 10:31:08 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 Oct 2015 10:31:08 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 493FEE0ACB; Tue, 20 Oct 2015 10:31:08 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dejanb@apache.org To: commits@activemq.apache.org Message-Id: <9ad1ea90a1d74644b4d2f796c1a9399c@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: activemq git commit: https://issues.apache.org/jira/browse/AMQ-6013 - init serializable packages statically Date: Tue, 20 Oct 2015 10:31:08 +0000 (UTC) Repository: activemq Updated Branches: refs/heads/master 490436c13 -> e10063824 https://issues.apache.org/jira/browse/AMQ-6013 - init serializable packages statically Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/e1006382 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/e1006382 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/e1006382 Branch: refs/heads/master Commit: e100638244c4ca5eb2a1f16bcdc671c9859c2694 Parents: 490436c Author: Dejan Bosanac Authored: Tue Oct 20 12:30:46 2015 +0200 Committer: Dejan Bosanac Committed: Tue Oct 20 12:30:57 2015 +0200 ---------------------------------------------------------------------- .../ClassLoadingAwareObjectInputStream.java | 20 ++++++++------------ .../transport/stomp/XStreamSupport.java | 2 +- .../transport/stomp/StompTestSupport.java | 1 - 3 files changed, 9 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/e1006382/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java ---------------------------------------------------------------------- diff --git a/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java b/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java index f8a7d0c..645a47d 100644 --- a/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java +++ b/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java @@ -34,10 +34,15 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream { private static final ClassLoader FALLBACK_CLASS_LOADER = ClassLoadingAwareObjectInputStream.class.getClassLoader(); - private static String[] serializablePackages; + public static final String[] serializablePackages; private final ClassLoader inLoader; + static { + serializablePackages = System.getProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", + "java.lang,java.util,org.apache.activemq,org.fusesource.hawtbuf,com.thoughtworks.xstream.mapper").split(","); + } + public ClassLoadingAwareObjectInputStream(InputStream in) throws IOException { super(in); inLoader = in.getClass().getClassLoader(); @@ -83,24 +88,15 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream { } } - public static String[] getSerialziablePackages() { - if (serializablePackages == null) { - serializablePackages = System.getProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", - "java.lang,java.util,org.apache.activemq,org.fusesource.hawtbuf,com.thoughtworks.xstream.mapper").split(","); - } - - return serializablePackages; - }; - public static boolean isAllAllowed() { - return getSerialziablePackages().length == 1 && getSerialziablePackages()[0].equals("*"); + return serializablePackages.length == 1 && serializablePackages[0].equals("*"); } private void checkSecurity(Class clazz) throws ClassNotFoundException { if (!clazz.isPrimitive()) { if (clazz.getPackage() != null && !isAllAllowed()) { boolean found = false; - for (String packageName : getSerialziablePackages()) { + for (String packageName : serializablePackages) { if (clazz.getPackage().getName().equals(packageName) || clazz.getPackage().getName().startsWith(packageName + ".")) { found = true; break; http://git-wip-us.apache.org/repos/asf/activemq/blob/e1006382/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java ---------------------------------------------------------------------- diff --git a/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java b/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java index 94ae7b7..abcca72 100644 --- a/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java +++ b/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java @@ -37,7 +37,7 @@ public class XStreamSupport { if (ClassLoadingAwareObjectInputStream.isAllAllowed()) { stream.addPermission(AnyTypePermission.ANY); } else { - for (String packageName : ClassLoadingAwareObjectInputStream.getSerialziablePackages()) { + for (String packageName : ClassLoadingAwareObjectInputStream.serializablePackages) { stream.allowTypesByWildcard(new String[]{packageName + ".**"}); } } http://git-wip-us.apache.org/repos/asf/activemq/blob/e1006382/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTestSupport.java ---------------------------------------------------------------------- diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTestSupport.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTestSupport.java index 3e1aa94..b783a54 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTestSupport.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTestSupport.java @@ -119,7 +119,6 @@ public class StompTestSupport { } public void startBroker() throws Exception { - System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", "*"); createBroker(true); XStreamBrokerContext context = new XStreamBrokerContext();