Author: orudyy
Date: Fri Feb 20 17:09:00 2015
New Revision: 1661165

URL: http://svn.apache.org/r1661165
Log:
QPID-6364: Display actual value for a secure attribute with value not matching 
secureValueFilter

Modified:
    
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
    
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
    
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
    
qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java

Modified: 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1661165&r1=1661164&r2=1661165&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
 Fri Feb 20 17:09:00 2015
@@ -44,7 +44,6 @@ import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.regex.Pattern;
 
 import javax.security.auth.Subject;
 
@@ -1137,9 +1136,7 @@ public abstract class AbstractConfigured
         if(attr != null && (attr.isAutomated() || attr.isDerived()))
         {
             Object value = attr.getValue((X)this);
-            Pattern secureValueFilter = attr.getSecureValueFilter();
-            if(value != null && attr.isSecure() && 
!SecurityManager.isSystemProcess() &&
-                    (secureValueFilter == null || 
secureValueFilter.matcher(value.toString()).matches()))
+            if(value != null && !SecurityManager.isSystemProcess() && 
attr.isSecureValue(value))
             {
                 return SECURE_VALUES.get(value.getClass());
             }

Modified: 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java?rev=1661165&r1=1661164&r2=1661165&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
 Fri Feb 20 17:09:00 2015
@@ -52,6 +52,23 @@ public abstract class ConfiguredObjectAt
 
     public abstract Pattern getSecureValueFilter();
 
+    public boolean isSecureValue(Object value)
+    {
+        if (isSecure())
+        {
+            Pattern filter = getSecureValueFilter();
+            if (filter == null)
+            {
+                return  true;
+            }
+            else
+            {
+                return filter.matcher(String.valueOf(value)).matches();
+            }
+        }
+        return false;
+    }
+
     public T convert(final Object value, C object)
     {
         final AttributeValueConverter<T> converter = getConverter();

Modified: 
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java?rev=1661165&r1=1661164&r2=1661165&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
 Fri Feb 20 17:09:00 2015
@@ -162,7 +162,7 @@ public class ConfiguredObjectToMapConver
                             .getAttributeTypes(confObject.getClass())
                             .get(name);
 
-                    if (attribute.isSecure() && !(isSecureTransport && 
extractAsConfig))
+                    if (attribute.isSecureValue(value) && !(isSecureTransport 
&& extractAsConfig))
                     {
                         // do not expose actual secure attribute value
                         // getAttribute() returns encoded value

Modified: 
qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java?rev=1661165&r1=1661164&r2=1661165&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
 Fri Feb 20 17:09:00 2015
@@ -313,6 +313,7 @@ public class ConfiguredObjectToMapConver
         Map<String, ConfiguredObjectAttribute<?, ?>> attributeTypes = 
typeRegistry.getAttributeTypes(TestChild.class);
         ConfiguredObjectAttribute secureAttribute = 
mock(ConfiguredObjectAttribute.class);
         when(secureAttribute.isSecure()).thenReturn(true);
+        when(secureAttribute.isSecureValue(any())).thenReturn(true);
         
when(attributeTypes.get(eq("secureAttribute"))).thenReturn(secureAttribute);
 
         TestChild mockChild = mock(TestChild.class);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to