diff options
| author | Keith Wall <kwall@apache.org> | 2015-01-14 19:45:42 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2015-01-14 19:45:42 +0000 |
| commit | 49c2561fe332a2094c0f837d618b2f9c875b45c6 (patch) | |
| tree | 7e9bd56f2897312b2d718580eb9b89cb2b516966 /qpid/java | |
| parent | 5c96f379d02dc43bca91260c247c10f3bb1733f2 (diff) | |
| download | qpid-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')
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; + } } |
