Update project structure to org.onap.aaf
[aaf/authz.git] / authz-core / src / main / java / org / onap / aaf / authz / env / AuthzTransImpl.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aaf\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * ===========================================================================\r
7  * * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * * you may not use this file except in compliance with the License.\r
9  * * You may obtain a copy of the License at\r
10  * * \r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * * \r
13  *  * Unless required by applicable law or agreed to in writing, software\r
14  * * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * * See the License for the specific language governing permissions and\r
17  * * limitations under the License.\r
18  * * ============LICENSE_END====================================================\r
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 package org.onap.aaf.authz.env;\r
24 \r
25 import java.security.Principal;\r
26 \r
27 import javax.servlet.http.HttpServletRequest;\r
28 \r
29 import org.onap.aaf.authz.org.Organization;\r
30 import org.onap.aaf.authz.org.OrganizationFactory;\r
31 \r
32 import org.onap.aaf.cadi.Lur;\r
33 import org.onap.aaf.cadi.Permission;\r
34 import org.onap.aaf.inno.env.LogTarget;\r
35 import org.onap.aaf.inno.env.impl.BasicTrans;\r
36 \r
37 public class AuthzTransImpl extends BasicTrans implements AuthzTrans {\r
38         private static final String TRUE = "true";\r
39         private Principal user;\r
40         private String ip,agent,meth,path;\r
41         private int port;\r
42         private Lur lur;\r
43         private Organization org;\r
44         private String force;\r
45         private boolean futureRequested;\r
46 \r
47         public AuthzTransImpl(AuthzEnv env) {\r
48                 super(env);\r
49                 ip="n/a";\r
50                 org=null;\r
51         }\r
52 \r
53         /**\r
54          * @see org.onap.aaf.authz.env.AuthTrans#set(javax.servlet.http.HttpServletRequest)\r
55          */\r
56         @Override\r
57         public AuthzTrans set(HttpServletRequest req) {\r
58                 user = req.getUserPrincipal();\r
59                 ip = req.getRemoteAddr();\r
60                 port = req.getRemotePort();\r
61                 agent = req.getHeader("User-Agent");\r
62                 meth = req.getMethod();\r
63                 path = req.getPathInfo();\r
64                 force = req.getParameter("force");\r
65                 futureRequested = TRUE.equalsIgnoreCase(req.getParameter("request"));\r
66                 org=null;\r
67                 return this;\r
68         }\r
69         \r
70         @Override\r
71         public void setUser(Principal p) {\r
72                 user = p;\r
73         }\r
74 \r
75         /**\r
76          * @see org.onap.aaf.authz.env.AuthTrans#user()\r
77          */\r
78         @Override\r
79         public String user() {\r
80                 return user==null?"n/a":user.getName();\r
81         }\r
82         \r
83         /**\r
84          * @see org.onap.aaf.authz.env.AuthTrans#getUserPrincipal()\r
85          */\r
86         @Override\r
87         public Principal getUserPrincipal() {\r
88                 return user;\r
89         }\r
90 \r
91         /**\r
92          * @see org.onap.aaf.authz.env.AuthTrans#ip()\r
93          */\r
94         @Override\r
95         public String ip() {\r
96                 return ip;\r
97         }\r
98 \r
99         /**\r
100          * @see org.onap.aaf.authz.env.AuthTrans#port()\r
101          */\r
102         @Override\r
103         public int port() {\r
104                 return port;\r
105         }\r
106 \r
107 \r
108         /* (non-Javadoc)\r
109          * @see org.onap.aaf.authz.env.AuthzTrans#meth()\r
110          */\r
111         @Override\r
112         public String meth() {\r
113                 return meth;\r
114         }\r
115 \r
116         /* (non-Javadoc)\r
117          * @see org.onap.aaf.authz.env.AuthzTrans#path()\r
118          */\r
119         @Override\r
120         public String path() {\r
121                 return path;\r
122         }\r
123 \r
124         /**\r
125          * @see org.onap.aaf.authz.env.AuthTrans#agent()\r
126          */\r
127         @Override\r
128         public String agent() {\r
129                 return agent;\r
130         }\r
131 \r
132         @Override\r
133         public AuthzEnv env() {\r
134                 return (AuthzEnv)delegate;\r
135         }\r
136         \r
137         @Override\r
138         public boolean forceRequested() {\r
139                 return TRUE.equalsIgnoreCase(force);\r
140         }\r
141         \r
142         public void forceRequested(boolean force) {\r
143                 this.force = force?TRUE:"false";\r
144         }\r
145         \r
146         @Override\r
147         public boolean moveRequested() {\r
148                 return "move".equalsIgnoreCase(force);\r
149         }\r
150 \r
151         @Override\r
152         public boolean futureRequested() {\r
153                 return futureRequested;\r
154         }\r
155         \r
156 \r
157         @Override\r
158         public void setLur(Lur lur) {\r
159                 this.lur = lur;\r
160         }\r
161         \r
162         @Override\r
163         public boolean fish(Permission p) {\r
164                 if(lur!=null) {\r
165                         return lur.fish(user, p);\r
166                 }\r
167                 return false;\r
168         }\r
169 \r
170         /* (non-Javadoc)\r
171          * @see org.onap.aaf.authz.env.AuthzTrans#org()\r
172          */\r
173         @Override\r
174         public Organization org() {\r
175                 if(org==null) {\r
176                         try {\r
177                                 if((org = OrganizationFactory.obtain(env(), user()))==null) {\r
178                                         org = Organization.NULL;\r
179                                 }\r
180                         } catch (Exception e) {\r
181                                 org = Organization.NULL;\r
182                         }\r
183                 } \r
184                 return org;\r
185         }\r
186 \r
187         /* (non-Javadoc)\r
188          * @see org.onap.aaf.authz.env.AuthzTrans#logAuditTrailOnly(org.onap.aaf.inno.env.LogTarget)\r
189          */\r
190         @Override\r
191         public void logAuditTrail(LogTarget lt) {\r
192                 if(lt.isLoggable()) {\r
193                         StringBuilder sb = new StringBuilder();\r
194                         auditTrail(1, sb);\r
195                         lt.log(sb);\r
196                 }\r
197         }\r
198 }\r