You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/08/13 11:15:09 UTC
[2/2] git commit: CAMEL-4974: Renamed option from sanitize to mask
CAMEL-4974: Renamed option from sanitize to mask
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/64f5a86a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/64f5a86a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/64f5a86a
Branch: refs/heads/master
Commit: 64f5a86a1923f73b3a46c73216653b1c794bd863
Parents: d34b9c1
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Aug 13 11:14:48 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Aug 13 11:14:48 2013 +0200
----------------------------------------------------------------------
.../camel/api/management/ManagedAttribute.java | 2 +-
.../camel/api/management/ManagedOperation.java | 2 +-
.../management/mbean/ManagedConsumerMBean.java | 2 +-
.../management/mbean/ManagedEndpointMBean.java | 2 +-
.../mbean/ManagedErrorHandlerMBean.java | 2 +-
.../management/mbean/ManagedProducerMBean.java | 2 +-
.../api/management/mbean/ManagedRouteMBean.java | 2 +-
.../mbean/ManagedSendProcessorMBean.java | 2 +-
.../management/DefaultManagementAgent.java | 14 +--
.../DefaultManagementMBeanAssembler.java | 4 +-
.../DefaultManagementNamingStrategy.java | 3 +-
.../camel/management/JmxSystemPropertyKeys.java | 2 +-
.../camel/management/MBeanInfoAssembler.java | 34 +++----
.../management/MaskRequiredModelMBean.java | 95 ++++++++++++++++++++
.../management/SanitizeRequiredModelMBean.java | 94 -------------------
.../management/mbean/ManagedSendProcessor.java | 2 +-
.../org/apache/camel/spi/ManagementAgent.java | 4 +-
.../camel/management/ManagedSanitizeTest.java | 2 +-
.../xml/AbstractCamelContextFactoryBean.java | 2 +-
.../camel/core/xml/CamelJMXAgentDefinition.java | 14 +--
.../apache/camel/component/jms/JmsEndpoint.java | 2 +-
.../management/SpringManagedSanitizeTest.xml | 4 +-
.../component/zookeeper/ZooKeeperEndpoint.java | 2 +-
23 files changed, 147 insertions(+), 147 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java b/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java
index 790ce5d..9f24f78 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java
@@ -34,6 +34,6 @@ public @interface ManagedAttribute {
String description() default "";
- boolean sanitize() default false;
+ boolean mask() default false;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java b/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java
index 6a10c09..a5e5c69 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java
@@ -34,6 +34,6 @@ public @interface ManagedOperation {
String description() default "";
- boolean sanitize() default false;
+ boolean mask() default false;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
index 24ee956..6aee218 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
@@ -20,7 +20,7 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedConsumerMBean extends ManagedServiceMBean {
- @ManagedAttribute(description = "Endpoint URI", sanitize = true)
+ @ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();
@ManagedAttribute(description = "Current number of inflight Exchanges")
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
index 1c82032..6b9c9b8 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
@@ -23,7 +23,7 @@ public interface ManagedEndpointMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
- @ManagedAttribute(description = "Endpoint URI", sanitize = true)
+ @ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();
@ManagedAttribute(description = "Singleton")
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
index 50b5ff1..9d0c95c 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
@@ -35,7 +35,7 @@ public interface ManagedErrorHandlerMBean {
@ManagedAttribute(description = "Does this error handler support transactions")
boolean isSupportTransactions();
- @ManagedAttribute(description = "Endpoint Uri for the dead letter channel where dead message is move to", sanitize = true)
+ @ManagedAttribute(description = "Endpoint Uri for the dead letter channel where dead message is move to", mask = true)
String getDeadLetterChannelEndpointUri();
@ManagedAttribute(description = "RedeliveryPolicy for maximum redeliveries")
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
index ad47f94..a35d533 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java
@@ -20,7 +20,7 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedProducerMBean extends ManagedServiceMBean {
- @ManagedAttribute(description = "Endpoint URI", sanitize = true)
+ @ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();
@ManagedAttribute(description = "Singleton")
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
index b945ce7..7f90e12 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
@@ -27,7 +27,7 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean {
@ManagedAttribute(description = "Route Description")
String getDescription();
- @ManagedAttribute(description = "Route Endpoint URI", sanitize = true)
+ @ManagedAttribute(description = "Route Endpoint URI", mask = true)
String getEndpointUri();
@ManagedAttribute(description = "Route State")
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
index 795c8a3..b164592 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
@@ -20,7 +20,7 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedSendProcessorMBean extends ManagedProcessorMBean {
- @ManagedAttribute(description = "Destination as Endpoint URI", sanitize = true)
+ @ManagedAttribute(description = "Destination as Endpoint URI", mask = true)
String getDestination();
/**
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index d2e57fb..d775b45 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -76,7 +76,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
private Boolean onlyRegisterProcessorWithCustomId;
private Boolean registerAlways;
private Boolean registerNewRoutes = true;
- private Boolean sanitize;
+ private Boolean mask;
public DefaultManagementAgent() {
}
@@ -120,8 +120,8 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
if (System.getProperty(JmxSystemPropertyKeys.REGISTER_NEW_ROUTES) != null) {
registerNewRoutes = Boolean.getBoolean(JmxSystemPropertyKeys.REGISTER_NEW_ROUTES);
}
- if (System.getProperty(JmxSystemPropertyKeys.SANITIZE) != null) {
- sanitize = Boolean.getBoolean(JmxSystemPropertyKeys.SANITIZE);
+ if (System.getProperty(JmxSystemPropertyKeys.MASK) != null) {
+ mask = Boolean.getBoolean(JmxSystemPropertyKeys.MASK);
}
}
@@ -213,12 +213,12 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
this.registerNewRoutes = registerNewRoutes;
}
- public Boolean getSanitize() {
- return sanitize != null && sanitize;
+ public Boolean getMask() {
+ return mask != null && mask;
}
- public void setSanitize(Boolean sanitize) {
- this.sanitize = sanitize;
+ public void setMask(Boolean mask) {
+ this.mask = mask;
}
public CamelContext getCamelContext() {
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
index b50b006..262b520 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
@@ -77,9 +77,9 @@ public class DefaultManagementMBeanAssembler implements ManagementMBeanAssembler
}
RequiredModelMBean mbean;
- boolean sanitize = camelContext.getManagementStrategy().getManagementAgent().getSanitize() != null && camelContext.getManagementStrategy().getManagementAgent().getSanitize();
+ boolean sanitize = camelContext.getManagementStrategy().getManagementAgent().getMask() != null && camelContext.getManagementStrategy().getManagementAgent().getMask();
if (sanitize) {
- mbean = new SanitizeRequiredModelMBean(mbi, sanitize);
+ mbean = new MaskRequiredModelMBean(mbi, sanitize);
} else {
mbean = (RequiredModelMBean) mBeanServer.instantiate(RequiredModelMBean.class.getName());
mbean.setModelMBeanInfo(mbi);
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
index 104103d..c2a45ad 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
@@ -36,7 +36,6 @@ import org.apache.camel.StaticService;
import org.apache.camel.builder.ErrorHandlerBuilderRef;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.InterceptStrategy;
-import org.apache.camel.spi.ManagementAgent;
import org.apache.camel.spi.ManagementNamingStrategy;
import org.apache.camel.spi.RouteContext;
import org.apache.camel.util.InetAddressUtil;
@@ -312,7 +311,7 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy
protected String getEndpointId(Endpoint ep) {
String answer = doGetEndpointId(ep);
- Boolean sanitize = camelContext != null && camelContext.getManagementStrategy().getManagementAgent().getSanitize();
+ Boolean sanitize = camelContext != null && camelContext.getManagementStrategy().getManagementAgent().getMask();
if (sanitize != null && sanitize) {
// use xxxxxx as replacements as * has to be quoted for MBean names
answer = URISupport.sanitizeUri(answer);
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java b/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java
index fc779fe..ac0a052 100644
--- a/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java
+++ b/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java
@@ -57,7 +57,7 @@ public final class JmxSystemPropertyKeys {
public static final String REGISTER_NEW_ROUTES = "org.apache.camel.jmx.registerNewRoutes";
// Whether to remove detected sensitive information (such as passwords) from MBean names and attributes.
- public static final String SANITIZE = "org.apache.camel.jmx.sanitize";
+ public static final String MASK = "org.apache.camel.jmx.mask";
private JmxSystemPropertyKeys() {
// not instantiated
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
index b74753a..56b5a14 100644
--- a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
+++ b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
@@ -202,7 +202,7 @@ public class MBeanInfoAssembler implements Service {
String desc = ma.description();
Method getter = null;
Method setter = null;
- boolean sanitize = ma.sanitize();
+ boolean mask = ma.mask();
if (cacheInfo.isGetter) {
key = cacheInfo.getterOrSetterShorthandName;
@@ -228,7 +228,7 @@ public class MBeanInfoAssembler implements Service {
if (setter != null) {
info.setSetter(setter);
}
- info.setSanitize(sanitize);
+ info.setMask(mask);
attributes.put(key, info);
}
@@ -238,8 +238,8 @@ public class MBeanInfoAssembler implements Service {
if (mo != null) {
String desc = mo.description();
Method operation = cacheInfo.method;
- boolean sanitize = mo.sanitize();
- operations.add(new ManagedOperationInfo(desc, operation, sanitize));
+ boolean mask = mo.mask();
+ operations.add(new ManagedOperationInfo(desc, operation, mask));
}
}
}
@@ -253,13 +253,13 @@ public class MBeanInfoAssembler implements Service {
// add missing attribute descriptors, this is needed to have attributes accessible
Descriptor desc = mbeanAttribute.getDescriptor();
- desc.setField("sanitize", info.isSanitize() ? "true" : "false");
+ desc.setField("mask", info.isMask() ? "true" : "false");
if (info.getGetter() != null) {
desc.setField("getMethod", info.getGetter().getName());
// attribute must also be added as mbean operation
ModelMBeanOperationInfo mbeanOperation = new ModelMBeanOperationInfo(info.getKey(), info.getGetter());
Descriptor opDesc = mbeanOperation.getDescriptor();
- opDesc.setField("sanitize", info.isSanitize() ? "true" : "false");
+ opDesc.setField("mask", info.isMask() ? "true" : "false");
mbeanOperation.setDescriptor(opDesc);
mBeanOperations.add(mbeanOperation);
}
@@ -280,7 +280,7 @@ public class MBeanInfoAssembler implements Service {
for (ManagedOperationInfo info : operations) {
ModelMBeanOperationInfo mbean = new ModelMBeanOperationInfo(info.getDescription(), info.getOperation());
Descriptor opDesc = mbean.getDescriptor();
- opDesc.setField("sanitize", info.isSanitize() ? "true" : "false");
+ opDesc.setField("mask", info.isMask() ? "true" : "false");
mbean.setDescriptor(opDesc);
mBeanOperations.add(mbean);
LOG.trace("Assembled operation: {}", mbean);
@@ -312,7 +312,7 @@ public class MBeanInfoAssembler implements Service {
private String description;
private Method getter;
private Method setter;
- private boolean sanitize;
+ private boolean mask;
private ManagedAttributeInfo(String key, String description) {
this.key = key;
@@ -343,12 +343,12 @@ public class MBeanInfoAssembler implements Service {
this.setter = setter;
}
- public boolean isSanitize() {
- return sanitize;
+ public boolean isMask() {
+ return mask;
}
- public void setSanitize(boolean sanitize) {
- this.sanitize = sanitize;
+ public void setMask(boolean mask) {
+ this.mask = mask;
}
@Override
@@ -360,12 +360,12 @@ public class MBeanInfoAssembler implements Service {
private static final class ManagedOperationInfo {
private final String description;
private final Method operation;
- private final boolean sanitize;
+ private final boolean mask;
- private ManagedOperationInfo(String description, Method operation, boolean sanitize) {
+ private ManagedOperationInfo(String description, Method operation, boolean mask) {
this.description = description;
this.operation = operation;
- this.sanitize = sanitize;
+ this.mask = mask;
}
public String getDescription() {
@@ -376,8 +376,8 @@ public class MBeanInfoAssembler implements Service {
return operation;
}
- public boolean isSanitize() {
- return sanitize;
+ public boolean isMask() {
+ return mask;
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/MaskRequiredModelMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/MaskRequiredModelMBean.java b/camel-core/src/main/java/org/apache/camel/management/MaskRequiredModelMBean.java
new file mode 100644
index 0000000..697ed3e
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/MaskRequiredModelMBean.java
@@ -0,0 +1,95 @@
+/**
+ * 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.management;
+
+import javax.management.Descriptor;
+import javax.management.MBeanException;
+import javax.management.MBeanOperationInfo;
+import javax.management.ReflectionException;
+import javax.management.RuntimeOperationsException;
+import javax.management.modelmbean.ModelMBeanInfo;
+import javax.management.modelmbean.RequiredModelMBean;
+
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A {@link RequiredModelMBean} which allows us to intercept invoking operations on the MBean.
+ * <p/>
+ * For example if mask has been enabled on JMX, then we use this implementation
+ * to hide sensitive information from the returned JMX attributes / operations.
+ */
+public class MaskRequiredModelMBean extends RequiredModelMBean {
+
+ private static final Logger LOG = LoggerFactory.getLogger(MaskRequiredModelMBean.class);
+ private boolean mask;
+
+ public MaskRequiredModelMBean() throws MBeanException, RuntimeOperationsException {
+ // must have default no-arg constructor
+ }
+
+ public MaskRequiredModelMBean(ModelMBeanInfo mbi, boolean mask) throws MBeanException, RuntimeOperationsException {
+ super(mbi);
+ this.mask = mask;
+ }
+
+ public boolean isMask() {
+ return mask;
+ }
+
+ @Override
+ public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException {
+ Object answer = super.invoke(opName, opArgs, sig);
+ // mask the answer if enabled and it was a String type (we cannot mask other types)
+ if (mask && answer instanceof String && ObjectHelper.isNotEmpty(answer) && isMaskOperation(opName)) {
+ answer = mask(opName, (String) answer);
+ }
+ return answer;
+ }
+
+ protected boolean isMaskOperation(String opName) {
+ for (MBeanOperationInfo info : getMBeanInfo().getOperations()) {
+ if (info.getName().equals(opName)) {
+ Descriptor desc = info.getDescriptor();
+ if (desc != null) {
+ Object val = desc.getFieldValue("mask");
+ return val != null && "true".equals(val);
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Masks the returned value from invoking the operation
+ *
+ * @param opName the operation name invoked
+ * @param value the current value
+ * @return the masked value
+ */
+ protected String mask(String opName, String value) {
+ // use sanitize uri which will mask sensitive information
+ String answer = URISupport.sanitizeUri(value);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Masking JMX operation: {}.{} value: {} -> {}",
+ new Object[]{getMBeanInfo().getClassName(), opName, value, answer});
+ }
+ return answer;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/SanitizeRequiredModelMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/SanitizeRequiredModelMBean.java b/camel-core/src/main/java/org/apache/camel/management/SanitizeRequiredModelMBean.java
deleted file mode 100644
index 6d34e75..0000000
--- a/camel-core/src/main/java/org/apache/camel/management/SanitizeRequiredModelMBean.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 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.management;
-
-import javax.management.Descriptor;
-import javax.management.MBeanException;
-import javax.management.MBeanOperationInfo;
-import javax.management.ReflectionException;
-import javax.management.RuntimeOperationsException;
-import javax.management.modelmbean.ModelMBeanInfo;
-import javax.management.modelmbean.RequiredModelMBean;
-
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A {@link RequiredModelMBean} which allows us to intercept invoking operations on the MBean.
- * <p/>
- * For example if sanitize has been enabled on JMX, then we use this implementation
- * to hide sensitive information from the returned JMX attributes / operations.
- */
-public class SanitizeRequiredModelMBean extends RequiredModelMBean {
-
- private static final Logger LOG = LoggerFactory.getLogger(SanitizeRequiredModelMBean.class);
- private boolean sanitize;
-
- public SanitizeRequiredModelMBean() throws MBeanException, RuntimeOperationsException {
- // must have default no-arg constructor
- }
-
- public SanitizeRequiredModelMBean(ModelMBeanInfo mbi, boolean sanitize) throws MBeanException, RuntimeOperationsException {
- super(mbi);
- this.sanitize = sanitize;
- }
-
- public boolean isSanitize() {
- return sanitize;
- }
-
- @Override
- public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException {
- Object answer = super.invoke(opName, opArgs, sig);
- // sanitize the answer if enabled and it was a String type (we cannot sanitize other types)
- if (sanitize && answer instanceof String && ObjectHelper.isNotEmpty(answer) && isSanitizedOperation(opName)) {
- answer = sanitize(opName, (String) answer);
- }
- return answer;
- }
-
- protected boolean isSanitizedOperation(String opName) {
- for (MBeanOperationInfo info : getMBeanInfo().getOperations()) {
- if (info.getName().equals(opName)) {
- Descriptor desc = info.getDescriptor();
- if (desc != null) {
- Object val = desc.getFieldValue("sanitize");
- return val != null && "true".equals(val);
- }
- }
- }
- return false;
- }
-
- /**
- * Sanitizes the returned value from invoking the operation
- *
- * @param opName the operation name invoked
- * @param value the current value
- * @return the sanitized value
- */
- protected String sanitize(String opName, String value) {
- String answer = URISupport.sanitizeUri(value);
- if (LOG.isTraceEnabled()) {
- LOG.trace("Sanitizing JMX operation: {}.{} value: {} -> {}",
- new Object[]{getMBeanInfo().getClassName(), opName, value, answer});
- }
- return answer;
- }
-}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
index b824da8..43f74e7 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
@@ -39,7 +39,7 @@ public class ManagedSendProcessor extends ManagedProcessor implements ManagedSen
public void init(ManagementStrategy strategy) {
super.init(strategy);
- boolean sanitize = strategy.getManagementAgent().getSanitize() != null ? strategy.getManagementAgent().getSanitize() : false;
+ boolean sanitize = strategy.getManagementAgent().getMask() != null ? strategy.getManagementAgent().getMask() : false;
if (sanitize) {
destination = URISupport.sanitizeUri(processor.getDestination().getEndpointUri());
} else {
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
index 4610beb..b0354c8 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
@@ -251,12 +251,12 @@ public interface ManagementAgent extends Service {
* <p/>
* This option is default <tt>false</tt>.
*/
- Boolean getSanitize();
+ Boolean getMask();
/**
* Whether to remove detected sensitive information (such as passwords) from MBean names and attributes.
* <p/>
* This option is default <tt>false</tt>.
*/
- void setSanitize(Boolean sanitize);
+ void setMask(Boolean sanitize);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/camel-core/src/test/java/org/apache/camel/management/ManagedSanitizeTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedSanitizeTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedSanitizeTest.java
index c5d3710..7a1d07a 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedSanitizeTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedSanitizeTest.java
@@ -30,7 +30,7 @@ public class ManagedSanitizeTest extends ManagementTestSupport {
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
- context.getManagementStrategy().getManagementAgent().setSanitize(true);
+ context.getManagementStrategy().getManagementAgent().setMask(true);
return context;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
----------------------------------------------------------------------
diff --git a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
index f158d63..ac13f35 100644
--- a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
+++ b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
@@ -364,7 +364,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex
agent.setOnlyRegisterProcessorWithCustomId(CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getOnlyRegisterProcessorWithCustomId()));
agent.setRegisterAlways(CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getRegisterAlways()));
agent.setRegisterNewRoutes(CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getRegisterNewRoutes()));
- agent.setSanitize(CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getSanitize()));
+ agent.setMask(CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getMask()));
ManagementStrategy managementStrategy = new ManagedManagementStrategy(getContext(), agent);
getContext().setManagementStrategy(managementStrategy);
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
----------------------------------------------------------------------
diff --git a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
index 59da461..6d73c3c 100644
--- a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
+++ b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
@@ -115,7 +115,7 @@ public class CamelJMXAgentDefinition extends IdentifiedType {
* A flag that indicates whether to remove detected sensitive information (such as passwords) from MBean names and attributes.
*/
@XmlAttribute
- private String sanitize = "false";
+ private String mask = "false";
public String getDisabled() {
return disabled;
@@ -221,12 +221,12 @@ public class CamelJMXAgentDefinition extends IdentifiedType {
this.loadStatisticsEnabled = loadStatisticsEnabled;
}
- public String getSanitize() {
- return sanitize;
+ public String getMask() {
+ return mask;
}
- public void setSanitize(String sanitize) {
- this.sanitize = sanitize;
+ public void setMask(String mask) {
+ this.mask = mask;
}
@Override
@@ -267,8 +267,8 @@ public class CamelJMXAgentDefinition extends IdentifiedType {
if (registerNewRoutes != null) {
sb.append(", registerNewRoutes=").append(registerNewRoutes);
}
- if (sanitize != null) {
- sb.append(", sanitize=").append(sanitize);
+ if (mask != null) {
+ sb.append(", mask=").append(mask);
}
sb.append("]");
return sb.toString();
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index e8545fa..701de7c 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -1130,7 +1130,7 @@ public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategy
return getCamelContext().getName();
}
- @ManagedAttribute(description = "Endpoint Uri", sanitize = true)
+ @ManagedAttribute(description = "Endpoint Uri", mask = true)
@Override
public String getEndpointUri() {
return super.getEndpointUri();
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/components/camel-spring/src/test/resources/org/apache/camel/spring/management/SpringManagedSanitizeTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/test/resources/org/apache/camel/spring/management/SpringManagedSanitizeTest.xml b/components/camel-spring/src/test/resources/org/apache/camel/spring/management/SpringManagedSanitizeTest.xml
index fecff5e..940e244 100644
--- a/components/camel-spring/src/test/resources/org/apache/camel/spring/management/SpringManagedSanitizeTest.xml
+++ b/components/camel-spring/src/test/resources/org/apache/camel/spring/management/SpringManagedSanitizeTest.xml
@@ -29,8 +29,8 @@
<!-- START SNIPPET: example -->
<camelContext xmlns="http://camel.apache.org/schema/spring">
- <!-- sanitize JMX so sensitive information such as passwords is not shown -->
- <jmxAgent id="agent" sanitize="true"/>
+ <!-- mask JMX so sensitive information such as passwords is not shown -->
+ <jmxAgent id="agent" mask="true"/>
<route id="foo">
<from uri="direct:start"/>
http://git-wip-us.apache.org/repos/asf/camel/blob/64f5a86a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
index 9832eff..5b74931 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
@@ -66,7 +66,7 @@ public class ZooKeeperEndpoint extends DefaultEndpoint {
return connectionManager;
}
- @ManagedAttribute(description = "Session Password", sanitize = true)
+ @ManagedAttribute(description = "Session Password", mask = true)
public byte[] getSessionPassword() {
return getConfiguration().getSessionPassword();
}