--- /dev/null
+/*******************************************************************************\r
+ * ============LICENSE_START====================================================\r
+ * * org.onap.aaf\r
+ * * ===========================================================================\r
+ * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+ * * ===========================================================================\r
+ * * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * * you may not use this file except in compliance with the License.\r
+ * * You may obtain a copy of the License at\r
+ * * \r
+ * * http://www.apache.org/licenses/LICENSE-2.0\r
+ * * \r
+ * * Unless required by applicable law or agreed to in writing, software\r
+ * * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * * See the License for the specific language governing permissions and\r
+ * * limitations under the License.\r
+ * * ============LICENSE_END====================================================\r
+ * *\r
+ * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ * *\r
+ ******************************************************************************/\r
+package org.onap.aaf.authz.env;\r
+\r
+import java.security.Principal;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+\r
+import org.onap.aaf.authz.org.Organization;\r
+import org.onap.aaf.authz.org.OrganizationFactory;\r
+\r
+import org.onap.aaf.cadi.Lur;\r
+import org.onap.aaf.cadi.Permission;\r
+import org.onap.aaf.inno.env.LogTarget;\r
+import org.onap.aaf.inno.env.impl.BasicTrans;\r
+\r
+public class AuthzTransImpl extends BasicTrans implements AuthzTrans {\r
+ private static final String TRUE = "true";\r
+ private Principal user;\r
+ private String ip,agent,meth,path;\r
+ private int port;\r
+ private Lur lur;\r
+ private Organization org;\r
+ private String force;\r
+ private boolean futureRequested;\r
+\r
+ public AuthzTransImpl(AuthzEnv env) {\r
+ super(env);\r
+ ip="n/a";\r
+ org=null;\r
+ }\r
+\r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#set(javax.servlet.http.HttpServletRequest)\r
+ */\r
+ @Override\r
+ public AuthzTrans set(HttpServletRequest req) {\r
+ user = req.getUserPrincipal();\r
+ ip = req.getRemoteAddr();\r
+ port = req.getRemotePort();\r
+ agent = req.getHeader("User-Agent");\r
+ meth = req.getMethod();\r
+ path = req.getPathInfo();\r
+ force = req.getParameter("force");\r
+ futureRequested = TRUE.equalsIgnoreCase(req.getParameter("request"));\r
+ org=null;\r
+ return this;\r
+ }\r
+ \r
+ @Override\r
+ public void setUser(Principal p) {\r
+ user = p;\r
+ }\r
+\r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#user()\r
+ */\r
+ @Override\r
+ public String user() {\r
+ return user==null?"n/a":user.getName();\r
+ }\r
+ \r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#getUserPrincipal()\r
+ */\r
+ @Override\r
+ public Principal getUserPrincipal() {\r
+ return user;\r
+ }\r
+\r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#ip()\r
+ */\r
+ @Override\r
+ public String ip() {\r
+ return ip;\r
+ }\r
+\r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#port()\r
+ */\r
+ @Override\r
+ public int port() {\r
+ return port;\r
+ }\r
+\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.onap.aaf.authz.env.AuthzTrans#meth()\r
+ */\r
+ @Override\r
+ public String meth() {\r
+ return meth;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.onap.aaf.authz.env.AuthzTrans#path()\r
+ */\r
+ @Override\r
+ public String path() {\r
+ return path;\r
+ }\r
+\r
+ /**\r
+ * @see org.onap.aaf.authz.env.AuthTrans#agent()\r
+ */\r
+ @Override\r
+ public String agent() {\r
+ return agent;\r
+ }\r
+\r
+ @Override\r
+ public AuthzEnv env() {\r
+ return (AuthzEnv)delegate;\r
+ }\r
+ \r
+ @Override\r
+ public boolean forceRequested() {\r
+ return TRUE.equalsIgnoreCase(force);\r
+ }\r
+ \r
+ public void forceRequested(boolean force) {\r
+ this.force = force?TRUE:"false";\r
+ }\r
+ \r
+ @Override\r
+ public boolean moveRequested() {\r
+ return "move".equalsIgnoreCase(force);\r
+ }\r
+\r
+ @Override\r
+ public boolean futureRequested() {\r
+ return futureRequested;\r
+ }\r
+ \r
+\r
+ @Override\r
+ public void setLur(Lur lur) {\r
+ this.lur = lur;\r
+ }\r
+ \r
+ @Override\r
+ public boolean fish(Permission p) {\r
+ if(lur!=null) {\r
+ return lur.fish(user, p);\r
+ }\r
+ return false;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.onap.aaf.authz.env.AuthzTrans#org()\r
+ */\r
+ @Override\r
+ public Organization org() {\r
+ if(org==null) {\r
+ try {\r
+ if((org = OrganizationFactory.obtain(env(), user()))==null) {\r
+ org = Organization.NULL;\r
+ }\r
+ } catch (Exception e) {\r
+ org = Organization.NULL;\r
+ }\r
+ } \r
+ return org;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.onap.aaf.authz.env.AuthzTrans#logAuditTrailOnly(org.onap.aaf.inno.env.LogTarget)\r
+ */\r
+ @Override\r
+ public void logAuditTrail(LogTarget lt) {\r
+ if(lt.isLoggable()) {\r
+ StringBuilder sb = new StringBuilder();\r
+ auditTrail(1, sb);\r
+ lt.log(sb);\r
+ }\r
+ }\r
+}\r