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