XACML to accept properties as null
[policy/xacml-pdp.git] / applications / native / src / main / java / org / onap / policy / xacml / pdp / application / nativ / NativePdpApplication.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * SPDX-License-Identifier: Apache-2.0
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.policy.xacml.pdp.application.nativ;
24
25 import com.att.research.xacml.api.Request;
26 import com.att.research.xacml.api.Response;
27 import java.util.Arrays;
28 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
29 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
30 import org.onap.policy.pdp.xacml.application.common.std.StdXacmlApplicationServiceProvider;
31
32 /**
33  * This class implements an application that handles onap.policies.native.Xacml policies.
34  *
35  * @author Chenfei Gao (cgao@research.att.com)
36  *
37  */
38 public class NativePdpApplication extends StdXacmlApplicationServiceProvider {
39
40     private static final ToscaPolicyTypeIdentifier nativePolicyType = new ToscaPolicyTypeIdentifier(
41             "onap.policies.native.Xacml", "1.0.0");
42     private NativePdpApplicationTranslator translator = new NativePdpApplicationTranslator();
43
44     /**
45      * Constructor.
46      */
47     public NativePdpApplication() {
48         super();
49
50         applicationName = "native";
51         actions = Arrays.asList("native");
52         supportedPolicyTypes.add(nativePolicyType);
53     }
54
55     @Override
56     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
57         return nativePolicyType.equals(policyTypeId);
58     }
59
60     @Override
61     protected ToscaPolicyTranslator getTranslator(String type) {
62         return translator;
63     }
64
65     /**
66      * Makes decision for the incoming native xacml request.
67      * @param request the native xacml request
68      * @return the native xacml response
69      */
70     public Response makeNativeDecision(Request request) {
71         return this.xacmlDecision(request);
72     }
73 }