2 * ============LICENSE_START====================================================
4 * ===========================================================================
5 * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6 * ===========================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END====================================================
22 package org.onap.aaf.auth.env;
24 import java.util.Date;
26 import javax.servlet.http.HttpServletRequest;
28 import org.onap.aaf.auth.org.Organization;
29 import org.onap.aaf.auth.org.OrganizationFactory;
30 import org.onap.aaf.cadi.Lur;
31 import org.onap.aaf.cadi.Permission;
32 import org.onap.aaf.cadi.principal.TaggedPrincipal;
33 import org.onap.aaf.misc.env.LogTarget;
34 import org.onap.aaf.misc.env.impl.BasicTrans;
36 public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
37 private static final String N_A = "n/a";
38 private static final String BLANK = "";
39 private HttpServletRequest hreq;
40 private TaggedPrincipal user;
42 private Organization org;
46 public AuthzTransImpl(AuthzEnv env) {
54 * @see org.onap.aaf.auth.env.test.AuthTrans#set(javax.servlet.http.HttpServletRequest)
57 public AuthzTrans set(HttpServletRequest req) {
59 user = (TaggedPrincipal)req.getUserPrincipal();
61 for (REQD_TYPE rt : REQD_TYPE.values()) {
64 // Handle alternate "request" for "future"
65 String request = req.getParameter("request");
67 requested(REQD_TYPE.future,(request.length()==0 || "true".equalsIgnoreCase(request)));
74 public HttpServletRequest hreq() {
79 public void setUser(TaggedPrincipal p) {
84 * @see org.onap.aaf.auth.env.test.AuthTrans#user()
87 public String user() {
88 return user==null?N_A:user.getName();
92 * @see org.onap.aaf.auth.env.test.AuthTrans#getUserPrincipal()
95 public TaggedPrincipal getUserPrincipal() {
100 * @see org.onap.aaf.auth.env.test.AuthTrans#ip()
104 return hreq==null?N_A:hreq.getRemoteAddr();
108 * @see org.onap.aaf.auth.env.test.AuthTrans#port()
112 return hreq==null?0:hreq.getRemotePort();
117 * @see org.onap.aaf.auth.env.test.AuthzTrans#meth()
120 public String meth() {
121 return hreq==null?"":hreq.getMethod();
125 * @see org.onap.aaf.auth.env.test.AuthzTrans#path()
128 public String path() {
129 return hreq==null?"":hreq.getPathInfo();
133 * @see org.onap.aaf.auth.env.test.AuthTrans#agent()
136 public String agent() {
137 return hreq==null?BLANK:hreq.getHeader("User-Agent");
141 public AuthzEnv env() {
142 return (AuthzEnv)delegate;
146 public boolean requested(REQD_TYPE requested) {
147 return (mask&requested.bit)==requested.bit;
150 public void requested(REQD_TYPE requested, boolean b) {
154 mask&=~requested.bit;
158 private void requested(REQD_TYPE reqtype, HttpServletRequest req) {
159 String p = req.getParameter(reqtype.name());
161 requested(reqtype,p.length()==0 || "true".equalsIgnoreCase(p));
166 public void setLur(Lur lur) {
171 public boolean fish(Permission ... pond) {
173 return lur.fish(user, pond);
179 * @see org.onap.aaf.auth.env.test.AuthzTrans#org()
182 public Organization org() {
185 if ((org = OrganizationFactory.obtain(env(), user()))==null) {
186 org = Organization.NULL;
188 } catch (Exception e) {
190 org = Organization.NULL;
197 * @see org.onap.aaf.auth.env.test.AuthzTrans#logAuditTrailOnly(com.att.inno.env.LogTarget)
200 public void logAuditTrail(LogTarget lt) {
201 if (lt.isLoggable()) {
202 StringBuilder sb = new StringBuilder();
209 * @see org.onap.aaf.auth.env.test.AuthzTrans#now()
221 * @see org.onap.aaf.auth.env.AuthzTrans#setTag(java.lang.String)
224 public void setTag(String tag) {
229 public String getTag() {