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;
45 public AuthzTransImpl(AuthzEnv env) {
52 * @see org.onap.aaf.auth.env.test.AuthTrans#set(javax.servlet.http.HttpServletRequest)
55 public AuthzTrans set(HttpServletRequest req) {
57 user = (TaggedPrincipal)req.getUserPrincipal();
59 for (REQD_TYPE rt : REQD_TYPE.values()) {
62 // Handle alternate "request" for "future"
63 String request = req.getParameter("request");
65 requested(REQD_TYPE.future,(request.length()==0 || "true".equalsIgnoreCase(request)));
72 public HttpServletRequest hreq() {
77 public void setUser(TaggedPrincipal p) {
82 * @see org.onap.aaf.auth.env.test.AuthTrans#user()
85 public String user() {
86 return user==null?N_A:user.getName();
90 * @see org.onap.aaf.auth.env.test.AuthTrans#getUserPrincipal()
93 public TaggedPrincipal getUserPrincipal() {
98 * @see org.onap.aaf.auth.env.test.AuthTrans#ip()
102 return hreq==null?N_A:hreq.getRemoteAddr();
106 * @see org.onap.aaf.auth.env.test.AuthTrans#port()
110 return hreq==null?0:hreq.getRemotePort();
115 * @see org.onap.aaf.auth.env.test.AuthzTrans#meth()
118 public String meth() {
119 return hreq==null?"":hreq.getMethod();
123 * @see org.onap.aaf.auth.env.test.AuthzTrans#path()
126 public String path() {
127 return hreq==null?"":hreq.getPathInfo();
131 * @see org.onap.aaf.auth.env.test.AuthTrans#agent()
134 public String agent() {
135 return hreq==null?BLANK:hreq.getHeader("User-Agent");
139 public AuthzEnv env() {
140 return (AuthzEnv)delegate;
144 public boolean requested(REQD_TYPE requested) {
145 return (mask&requested.bit)==requested.bit;
148 public void requested(REQD_TYPE requested, boolean b) {
152 mask&=~requested.bit;
156 private void requested(REQD_TYPE reqtype, HttpServletRequest req) {
157 String p = req.getParameter(reqtype.name());
159 requested(reqtype,p.length()==0 || "true".equalsIgnoreCase(p));
164 public void setLur(Lur lur) {
169 public boolean fish(Permission ... pond) {
171 return lur.fish(user, pond);
177 * @see org.onap.aaf.auth.env.test.AuthzTrans#org()
180 public Organization org() {
183 if ((org = OrganizationFactory.obtain(env(), user()))==null) {
184 org = Organization.NULL;
186 } catch (Exception e) {
188 org = Organization.NULL;
195 * @see org.onap.aaf.auth.env.test.AuthzTrans#logAuditTrailOnly(com.att.inno.env.LogTarget)
198 public void logAuditTrail(LogTarget lt) {
199 if (lt.isLoggable()) {
200 StringBuilder sb = new StringBuilder();
207 * @see org.onap.aaf.auth.env.test.AuthzTrans#now()