Update AAF Version 1.0.0
[aaf/authz.git] / authz-core / src / main / java / com / att / 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 com.att.authz.env;\r
24 \r
25 import java.security.Principal;\r
26 \r
27 import javax.servlet.http.HttpServletRequest;\r
28 \r
29 import com.att.authz.org.Organization;\r
30 import com.att.authz.org.OrganizationFactory;\r
31 import com.att.cadi.Lur;\r
32 import com.att.cadi.Permission;\r
33 import com.att.inno.env.LogTarget;\r
34 import com.att.inno.env.impl.BasicTrans;\r
35 \r
36 public class AuthzTransImpl extends BasicTrans implements AuthzTrans {\r
37         private static final String TRUE = "true";\r
38         private Principal user;\r
39         private String ip,agent,meth,path;\r
40         private int port;\r
41         private Lur lur;\r
42         private Organization org;\r
43         private String force;\r
44         private boolean futureRequested;\r
45 \r
46         public AuthzTransImpl(AuthzEnv env) {\r
47                 super(env);\r
48                 ip="n/a";\r
49                 org=null;\r
50         }\r
51 \r
52         /**\r
53          * @see com.att.authz.env.AuthTrans#set(javax.servlet.http.HttpServletRequest)\r
54          */\r
55         @Override\r
56         public AuthzTrans set(HttpServletRequest req) {\r
57                 user = req.getUserPrincipal();\r
58                 ip = req.getRemoteAddr();\r
59                 port = req.getRemotePort();\r
60                 agent = req.getHeader("User-Agent");\r
61                 meth = req.getMethod();\r
62                 path = req.getPathInfo();\r
63                 force = req.getParameter("force");\r
64                 futureRequested = TRUE.equalsIgnoreCase(req.getParameter("request"));\r
65                 org=null;\r
66                 return this;\r
67         }\r
68         \r
69         @Override\r
70         public void setUser(Principal p) {\r
71                 user = p;\r
72         }\r
73 \r
74         /**\r
75          * @see com.att.authz.env.AuthTrans#user()\r
76          */\r
77         @Override\r
78         public String user() {\r
79                 return user==null?"n/a":user.getName();\r
80         }\r
81         \r
82         /**\r
83          * @see com.att.authz.env.AuthTrans#getUserPrincipal()\r
84          */\r
85         @Override\r
86         public Principal getUserPrincipal() {\r
87                 return user;\r
88         }\r
89 \r
90         /**\r
91          * @see com.att.authz.env.AuthTrans#ip()\r
92          */\r
93         @Override\r
94         public String ip() {\r
95                 return ip;\r
96         }\r
97 \r
98         /**\r
99          * @see com.att.authz.env.AuthTrans#port()\r
100          */\r
101         @Override\r
102         public int port() {\r
103                 return port;\r
104         }\r
105 \r
106 \r
107         /* (non-Javadoc)\r
108          * @see com.att.authz.env.AuthzTrans#meth()\r
109          */\r
110         @Override\r
111         public String meth() {\r
112                 return meth;\r
113         }\r
114 \r
115         /* (non-Javadoc)\r
116          * @see com.att.authz.env.AuthzTrans#path()\r
117          */\r
118         @Override\r
119         public String path() {\r
120                 return path;\r
121         }\r
122 \r
123         /**\r
124          * @see com.att.authz.env.AuthTrans#agent()\r
125          */\r
126         @Override\r
127         public String agent() {\r
128                 return agent;\r
129         }\r
130 \r
131         @Override\r
132         public AuthzEnv env() {\r
133                 return (AuthzEnv)delegate;\r
134         }\r
135         \r
136         @Override\r
137         public boolean forceRequested() {\r
138                 return TRUE.equalsIgnoreCase(force);\r
139         }\r
140         \r
141         public void forceRequested(boolean force) {\r
142                 this.force = force?TRUE:"false";\r
143         }\r
144         \r
145         @Override\r
146         public boolean moveRequested() {\r
147                 return "move".equalsIgnoreCase(force);\r
148         }\r
149 \r
150         @Override\r
151         public boolean futureRequested() {\r
152                 return futureRequested;\r
153         }\r
154         \r
155 \r
156         @Override\r
157         public void setLur(Lur lur) {\r
158                 this.lur = lur;\r
159         }\r
160         \r
161         @Override\r
162         public boolean fish(Permission p) {\r
163                 if(lur!=null) {\r
164                         return lur.fish(user, p);\r
165                 }\r
166                 return false;\r
167         }\r
168 \r
169         /* (non-Javadoc)\r
170          * @see com.att.authz.env.AuthzTrans#org()\r
171          */\r
172         @Override\r
173         public Organization org() {\r
174                 if(org==null) {\r
175                         try {\r
176                                 if((org = OrganizationFactory.obtain(env(), user()))==null) {\r
177                                         org = Organization.NULL;\r
178                                 }\r
179                         } catch (Exception e) {\r
180                                 org = Organization.NULL;\r
181                         }\r
182                 } \r
183                 return org;\r
184         }\r
185 \r
186         /* (non-Javadoc)\r
187          * @see com.att.authz.env.AuthzTrans#logAuditTrailOnly(com.att.inno.env.LogTarget)\r
188          */\r
189         @Override\r
190         public void logAuditTrail(LogTarget lt) {\r
191                 if(lt.isLoggable()) {\r
192                         StringBuilder sb = new StringBuilder();\r
193                         auditTrail(1, sb);\r
194                         lt.log(sb);\r
195                 }\r
196         }\r
197 }\r