* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.onap.aaf.auth.org.Organization;
import org.onap.aaf.auth.org.OrganizationFactory;
import org.onap.aaf.misc.env.impl.BasicTrans;
public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
+ private static final String N_A = "n/a";
+ private static final String BLANK = "";
+ private HttpServletRequest hreq;
+ private HttpServletResponse hresp;
private TaggedPrincipal user;
- private String ip,agent,meth,path;
- private int port;
private Lur lur;
private Organization org;
private int mask;
private Date now;
+ private String tag;
public AuthzTransImpl(AuthzEnv env) {
super(env);
- ip="n/a";
org=null;
mask=0;
+ tag=null;
}
/**
* @see org.onap.aaf.auth.env.test.AuthTrans#set(javax.servlet.http.HttpServletRequest)
*/
@Override
- public AuthzTrans set(HttpServletRequest req) {
+ public AuthzTrans set(HttpServletRequest req, HttpServletResponse resp) {
+ hreq = req;
+ hresp = resp;
user = (TaggedPrincipal)req.getUserPrincipal();
- ip = req.getRemoteAddr();
- port = req.getRemotePort();
- agent = req.getHeader("User-Agent");
- meth = req.getMethod();
- path = req.getPathInfo();
-
+
for (REQD_TYPE rt : REQD_TYPE.values()) {
requested(rt,req);
}
org=null;
return this;
}
-
+
+ @Override
+ public HttpServletRequest hreq() {
+ return hreq;
+ }
+
+ @Override
+ public HttpServletResponse hresp() {
+ return hresp;
+ }
+
@Override
public void setUser(TaggedPrincipal p) {
user = p;
*/
@Override
public String user() {
- return user==null?"n/a":user.getName();
+ return user==null?N_A:user.getName();
}
-
+
/**
* @see org.onap.aaf.auth.env.test.AuthTrans#getUserPrincipal()
*/
*/
@Override
public String ip() {
- return ip;
+ return hreq==null?N_A:hreq.getRemoteAddr();
}
/**
*/
@Override
public int port() {
- return port;
+ return hreq==null?0:hreq.getRemotePort();
}
*/
@Override
public String meth() {
- return meth;
+ return hreq==null?"":hreq.getMethod();
}
/* (non-Javadoc)
*/
@Override
public String path() {
- return path;
+ return hreq==null?"":hreq.getPathInfo();
}
/**
*/
@Override
public String agent() {
- return agent;
+ return hreq==null?BLANK:hreq.getHeader("User-Agent");
}
@Override
public AuthzEnv env() {
return (AuthzEnv)delegate;
}
-
+
@Override
public boolean requested(REQD_TYPE requested) {
return (mask&requested.bit)==requested.bit;
}
-
+
public void requested(REQD_TYPE requested, boolean b) {
if (b) {
mask|=requested.bit;
mask&=~requested.bit;
}
}
-
+
private void requested(REQD_TYPE reqtype, HttpServletRequest req) {
String p = req.getParameter(reqtype.name());
if (p!=null) {
public void setLur(Lur lur) {
this.lur = lur;
}
-
+
+ @Override
+ public Lur getLur() {
+ return lur;
+ }
+
@Override
public boolean fish(Permission ... pond) {
if (lur!=null) {
org = Organization.NULL;
}
} catch (Exception e) {
-
+
org = Organization.NULL;
}
- }
+ }
return org;
}
}
return now;
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.onap.aaf.auth.env.AuthzTrans#setTag(java.lang.String)
+ */
+ @Override
+ public void setTag(String tag) {
+ this.tag = tag;
+ }
+
+ @Override
+ public String getTag() {
+ return tag;
+ }
+
+ @Override
+ public void clearCache() {
+ if (lur!=null) {
+ StringBuilder report = new StringBuilder();
+ lur.clear(user, report);
+ info().log(report);
+ }
+ }
}