1f8903140f2dde676354081a8ee558efc5686578
[policy/parent.git] / docs / xacml / tutorial / app / src / main / java / org / onap / policy / tutorial / tutorial / TutorialRequest.java
1 package org.onap.policy.tutorial.tutorial;
2
3 import java.util.Map;
4 import java.util.Map.Entry;
5 import org.onap.policy.models.decisions.concepts.DecisionRequest;
6 import com.att.research.xacml.std.annotations.XACMLAction;
7 import com.att.research.xacml.std.annotations.XACMLRequest;
8 import com.att.research.xacml.std.annotations.XACMLResource;
9 import com.att.research.xacml.std.annotations.XACMLSubject;
10 import lombok.Getter;
11 import lombok.Setter;
12 import lombok.ToString;
13
14 @Getter
15 @Setter
16 @ToString
17 @XACMLRequest(ReturnPolicyIdList = true)
18 public class TutorialRequest {
19     @XACMLSubject(includeInResults = true)
20     private String onapName;
21
22     @XACMLSubject(attributeId = "urn:org:onap:onap-component", includeInResults = true)
23     private String onapComponent;
24
25     @XACMLSubject(attributeId = "urn:org:onap:onap-instance", includeInResults = true)
26     private String onapInstance;
27
28     @XACMLAction()
29     private String action;
30
31     @XACMLResource(attributeId = "urn:org:onap:tutorial-user", includeInResults = true)
32     private String user;
33
34     @XACMLResource(attributeId = "urn:org:onap:tutorial-entity", includeInResults = true)
35     private String entity;
36
37     @XACMLResource(attributeId = "urn:org:onap:tutorial-permission", includeInResults = true)
38     private String permission;
39
40     public static TutorialRequest createRequest(DecisionRequest decisionRequest) {
41         //
42         // Create our object
43         //
44         TutorialRequest request = new TutorialRequest();
45         //
46         // Add the subject attributes
47         //
48         request.onapName = decisionRequest.getOnapName();
49         request.onapComponent = decisionRequest.getOnapComponent();
50         request.onapInstance = decisionRequest.getOnapInstance();
51         //
52         // Add the action attribute
53         //
54         request.action = decisionRequest.getAction();
55         //
56         // Add the resource attributes
57         //
58         Map<String, Object> resources = decisionRequest.getResource();
59         for (Entry<String, Object> entrySet : resources.entrySet()) {
60             if ("user".equals(entrySet.getKey())) {
61                 request.user = entrySet.getValue().toString();
62             }
63             if ("entity".equals(entrySet.getKey())) {
64                 request.entity = entrySet.getValue().toString();
65             }
66             if ("permission".equals(entrySet.getKey())) {
67                 request.permission = entrySet.getValue().toString();
68             }
69         }
70
71         return request;
72     }
73 }