diff options
author | liamfallon <liam.fallon@est.tech> | 2020-12-17 16:57:10 +0000 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2020-12-21 16:30:57 +0000 |
commit | 30ead499d80c3c6cf6433c6a1e9fb4693d109ab1 (patch) | |
tree | b0d48259a5ca139080be351ca64d69bc00b591c0 /applications/guard | |
parent | 0bd8066788769079f098f6f831919b2c639520a0 (diff) |
XACML to accept properties as null
xacml-pdp expects the property map to exist in all policies, even if it
is sometimes empty. Now, the propperty map can be null. The code is
updated to cope with a null property map.
Issue-ID: POLICY-2900
Change-Id: Ie31a2770aff1435a1d1064512d0c2fa2088d3183
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'applications/guard')
3 files changed, 28 insertions, 4 deletions
diff --git a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslator.java b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslator.java index b3ee36bc..2b713740 100644 --- a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslator.java +++ b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslator.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -129,6 +130,12 @@ public class GuardTranslator implements ToscaPolicyTranslator { // this.fillMetadataSection(newPolicyType, toscaPolicy.getMetadata()); // + // There should be properties metadata section + // + if (toscaPolicy.getProperties() == null) { + throw new ToscaPolicyConversionException("no properties specified on guard policy: " + policyName); + } + // // Generate the TargetType - add true if not blacklist // newPolicyType.setTarget(this.generateTargetType(toscaPolicy.getProperties(), @@ -694,4 +701,4 @@ public class GuardTranslator implements ToscaPolicyTranslator { return rule; } -}
\ No newline at end of file +} diff --git a/applications/guard/src/test/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslatorTest.java b/applications/guard/src/test/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslatorTest.java index 7e5e3ed5..e4c958b9 100644 --- a/applications/guard/src/test/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslatorTest.java +++ b/applications/guard/src/test/java/org/onap/policy/xacml/pdp/application/guard/GuardTranslatorTest.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,6 +36,7 @@ import com.att.research.xacml.std.StdStatusCode; import com.att.research.xacml.util.XACMLPolicyWriter; import java.io.ByteArrayOutputStream; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType; @@ -204,6 +206,16 @@ public class GuardTranslatorTest { } } } + + ToscaPolicy testPol = completedJtst.getToscaTopologyTemplate().getPolicies().get(0).values().iterator().next(); + + testPol.setProperties(new LinkedHashMap<>()); + assertThatExceptionOfType(ToscaPolicyConversionException.class) + .isThrownBy(() -> translator.convertPolicy(testPol)); + + testPol.setProperties(null); + assertThatExceptionOfType(ToscaPolicyConversionException.class) + .isThrownBy(() -> translator.convertPolicy(testPol)); } private void validateCommon(ToscaPolicy policy, PolicyType xacmlPolicy) { diff --git a/applications/guard/src/test/resources/test-bad-policies.yaml b/applications/guard/src/test/resources/test-bad-policies.yaml index 07040c54..eb39aded 100644 --- a/applications/guard/src/test/resources/test-bad-policies.yaml +++ b/applications/guard/src/test/resources/test-bad-policies.yaml @@ -5,6 +5,8 @@ topology_template: type: onap.policies.controlloop.guard.common.FrequencyLimiter type_version: 1.0.0 version: 1.0.0 + properties: + badProperty: badValue - frequency-timewindow: type: onap.policies.controlloop.guard.common.FrequencyLimiter type_version: 1.0.0 @@ -16,7 +18,8 @@ topology_template: type: onap.policies.controlloop.guard.common.MinMax type_version: 1.0.0 version: 1.0.0 - properties: null + properties: + badProperty: badValue - minmax-nominmax: type: onap.policies.controlloop.guard.common.MinMax type_version: 1.0.0 @@ -27,12 +30,14 @@ topology_template: type: onap.policies.controlloop.guard.common.Blacklist type_version: 1.0.0 version: 1.0.0 - properties: null + properties: + badProperty: badValue - filter-noalgorithm: type: onap.policies.controlloop.guard.common.Filter type_version: 1.0.0 version: 1.0.0 - properties: null + properties: + badProperty: badValue - filter-badalgorithm: type: onap.policies.controlloop.guard.common.Filter type_version: 1.0.0 |