summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-01-14 19:45:42 +0000
committerKeith Wall <kwall@apache.org>2015-01-14 19:45:42 +0000
commit49c2561fe332a2094c0f837d618b2f9c875b45c6 (patch)
tree7e9bd56f2897312b2d718580eb9b89cb2b516966 /qpid/java
parent5c96f379d02dc43bca91260c247c10f3bb1733f2 (diff)
downloadqpid-python-49c2561fe332a2094c0f837d618b2f9c875b45c6.tar.gz
QPID-6292: [Java Broker Tests] Add model mechanism test testing the behaviour of secure attributes
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1651786 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-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;
+ }
}