You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ay...@apache.org on 2015/11/12 23:05:11 UTC
camel git commit: CAMEL-9317: camel-salesforce's XStream to use a
system property to configure its setting
Repository: camel
Updated Branches:
refs/heads/master 5ea0a6f6c -> 5aef07542
CAMEL-9317: camel-salesforce's XStream to use a system property to configure its setting
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5aef0754
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5aef0754
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5aef0754
Branch: refs/heads/master
Commit: 5aef07542212dae233f719f064b46dfe175ec6b4
Parents: 5ea0a6f
Author: Akitoshi Yoshida <ay...@apache.org>
Authored: Thu Nov 12 22:47:50 2015 +0100
Committer: Akitoshi Yoshida <ay...@apache.org>
Committed: Thu Nov 12 23:04:24 2015 +0100
----------------------------------------------------------------------
.../internal/client/DefaultRestClient.java | 2 +
.../internal/client/XStreamUtils.java | 74 ++++++++++++++++++++
.../internal/processor/XmlRestProcessor.java | 2 +
3 files changed, 78 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/5aef0754/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java
index 86ee39b..2dade18 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java
@@ -67,6 +67,8 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient
this.xStream = new XStream();
xStream.processAnnotations(RestErrors.class);
xStream.processAnnotations(RestChoices.class);
+
+ XStreamUtils.addDefaultPermissions(xStream);
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/5aef0754/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/XStreamUtils.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/XStreamUtils.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/XStreamUtils.java
new file mode 100644
index 0000000..182e411
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/XStreamUtils.java
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.salesforce.internal.client;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.security.AnyTypePermission;
+import com.thoughtworks.xstream.security.ExplicitTypePermission;
+import com.thoughtworks.xstream.security.TypePermission;
+import com.thoughtworks.xstream.security.WildcardTypePermission;
+
+/**
+ * REVISIT this code is duplicated from camel-xstream and we should
+ * find another way...
+ */
+public final class XStreamUtils {
+ private static final String PERMISSIONS_PROPERTY_KEY = "org.apache.camel.xstream.permissions";
+ private static final String PERMISSIONS_PROPERTY_DEFAULT = "-*,java.lang.*,java.util.*";
+
+ private XStreamUtils() {
+ }
+
+ public static void addPermissions(XStream xstream, String permissions) {
+ for (String pterm : permissions.split(",")) {
+ boolean aod;
+ pterm = pterm.trim();
+ if (pterm.startsWith("-")) {
+ aod = false;
+ pterm = pterm.substring(1);
+ } else {
+ aod = true;
+ if (pterm.startsWith("+")) {
+ pterm = pterm.substring(1);
+ }
+ }
+ TypePermission typePermission = null;
+ if ("*".equals(pterm)) {
+ // accept or deny any
+ typePermission = AnyTypePermission.ANY;
+ } else if (pterm.indexOf('*') < 0) {
+ // exact type
+ typePermission = new ExplicitTypePermission(new String[]{pterm});
+ } else if (pterm.length() > 0) {
+ // wildcard type
+ typePermission = new WildcardTypePermission(new String[]{pterm});
+ }
+ if (typePermission != null) {
+ if (aod) {
+ xstream.addPermission(typePermission);
+ } else {
+ xstream.denyPermission(typePermission);
+ }
+ }
+ }
+ }
+
+ public static void addDefaultPermissions(XStream xstream) {
+ addPermissions(xstream, System.getProperty(PERMISSIONS_PROPERTY_KEY, PERMISSIONS_PROPERTY_DEFAULT));
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/5aef0754/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java
index 1a31e20..9e29a5d 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java
@@ -45,6 +45,7 @@ import org.apache.camel.component.salesforce.api.dto.SObjectBasicInfo;
import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
import org.apache.camel.component.salesforce.api.dto.SearchResults;
import org.apache.camel.component.salesforce.api.dto.Versions;
+import org.apache.camel.component.salesforce.internal.client.XStreamUtils;
import org.eclipse.jetty.util.StringUtil;
import static org.apache.camel.component.salesforce.SalesforceEndpointConfig.SOBJECT_NAME;
@@ -68,6 +69,7 @@ public class XmlRestProcessor extends AbstractRestProcessor {
}
});
+ XStreamUtils.addDefaultPermissions(result);
result.registerConverter(new JodaTimeConverter());
return result;
}