summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java34
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java13
3 files changed, 49 insertions, 2 deletions
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
index 325e2843fa..46f205116a 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
@@ -18,12 +18,16 @@
*/
package org.apache.qpid.server.model.testmodels.singleton;
+import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import javax.security.auth.Subject;
+
import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -442,4 +446,34 @@ public class AbstractConfiguredObjectTest extends QpidTestCase
assertEquals(TestSingletonImpl.DERIVED_VALUE, object.getDerivedValue());
}
+
+ public void testSecureValueRetrieval()
+ {
+ final String objectName = "myName";
+ final String secret = "secret";
+
+ Map<String, Object> attributes = new HashMap<>();
+ attributes.put(ConfiguredObject.NAME, objectName);
+ attributes.put(TestSingleton.SECURE_VALUE, secret);
+
+ final TestSingleton object = _model.getObjectFactory().create(TestSingleton.class, attributes);
+
+ assertEquals(AbstractConfiguredObject.SECURED_STRING_VALUE, object.getAttribute(TestSingleton.SECURE_VALUE));
+ assertEquals(secret, object.getSecureValue());
+
+ //verify we can retrieve the actual secure value using system rights
+ Subject.doAs(org.apache.qpid.server.security.SecurityManager.getSubjectWithAddedSystemRights(),
+ new PrivilegedAction<Object>()
+ {
+ @Override
+ public Object run()
+ {
+ assertEquals(secret, object.getAttribute(TestSingleton.SECURE_VALUE));
+ assertEquals(secret, object.getSecureValue());
+ return null;
+ }
+ });
+
+
+ }
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
index e36097655b..f19dc5eeb9 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
@@ -39,6 +39,7 @@ public interface TestSingleton<X extends TestSingleton<X>> extends ConfiguredObj
String ENUM_VALUE = "enumValue";
String INT_VALUE = "intValue";
String VALID_VALUE = "validValue";
+ String SECURE_VALUE = "secureValue";
String ENUMSET_VALUES = "enumSetValues";
String TEST_CONTEXT_DEFAULT = "TEST_CONTEXT_DEFAULT";
@@ -80,4 +81,7 @@ public interface TestSingleton<X extends TestSingleton<X>> extends ConfiguredObj
@DerivedAttribute
long getDerivedValue();
+ @ManagedAttribute(secure = true)
+ String getSecureValue();
+
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
index 47c30030b2..c4dc0fa39d 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
@@ -58,10 +58,13 @@ public class TestSingletonImpl extends AbstractConfiguredObject<TestSingletonImp
private String _validValue;
@ManagedAttributeField
- private org.apache.qpid.server.model.testmodels.singleton.TestEnum _enumValue;
+ private TestEnum _enumValue;
@ManagedAttributeField
- private Set<org.apache.qpid.server.model.testmodels.singleton.TestEnum> _enumSetValues;
+ private Set<TestEnum> _enumSetValues;
+
+ @ManagedAttributeField
+ private String _secureValue;
@ManagedObjectFactoryConstructor
@@ -143,4 +146,10 @@ public class TestSingletonImpl extends AbstractConfiguredObject<TestSingletonImp
{
return DERIVED_VALUE;
}
+
+ @Override
+ public String getSecureValue()
+ {
+ return _secureValue;
+ }
}