* 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.
public class DirectAAFLur implements Lur {
private final AuthzEnv env;
private final Question question;
-
+
public DirectAAFLur(AuthzEnv env, Question question/*, TokenMgr tm*/) {
this.env = env;
this.question = question;
public boolean fish(Principal bait, Permission ... pond) {
return fish(env.newTransNoAvg(),bait,pond);
}
-
+
public boolean fish(AuthzTrans trans, Principal bait, Permission ... pond) {
boolean rv = false;
Result<List<Data>> pdr = question.getPermsByUser(trans, bait.getName(),false);
switch(pdr.status) {
case OK:
- for(PermDAO.Data d : pdr.value) {
- if(!rv) {
+ for (PermDAO.Data d : pdr.value) {
+ if (!rv) {
for (Permission p : pond) {
- if(new PermPermission(d).match(p)) {
+ if (new PermPermission(d).match(p)) {
rv=true;
break;
}
Result<List<Data>> pdr = question.getPermsByUser(env.newTrans(), bait.getName(),false);
switch(pdr.status) {
case OK:
- for(PermDAO.Data d : pdr.value) {
+ for (PermDAO.Data d : pdr.value) {
permissions.add(new PermPermission(d));
}
break;
env.error().log("Can't access Cassandra to fulfill Permission Query: ",pdr.status,"-", pdr.details);
}
}
-
+
@Override
public void destroy() {
}
public boolean handlesExclusively(Permission ... pond) {
return false;
}
-
+
/**
* Small Class implementing CADI's Permission with Cassandra Data
* @author Jonathan
*/
public static class PermPermission implements Permission {
private PermDAO.Data data;
-
+
public PermPermission(PermDAO.Data d) {
data = d;
}
-
+
public PermPermission(AuthzTrans trans, Question q, String p) {
data = PermDAO.Data.create(trans, q, p);
}
-
+
public PermPermission(String ns, String type, String instance, String action) {
data = new PermDAO.Data();
data.ns = ns;
@Override
public boolean match(Permission p) {
- if(p==null) {
+ if (p==null) {
return false;
}
PermDAO.Data pd;
- if(p instanceof DirectAAFLur.PermPermission) {
+ if (p instanceof DirectAAFLur.PermPermission) {
pd = ((DirectAAFLur.PermPermission)p).data;
- if(data.ns.equals(pd.ns))
- if(data.type.equals(pd.type))
- if(data.instance!=null && (data.instance.equals(pd.instance) || "*".equals(data.instance)))
- if(data.action!=null && (data.action.equals(pd.action) || "*".equals(data.action)))
+ if (data.ns.equals(pd.ns))
+ if (data.type.equals(pd.type))
+ if (data.instance!=null && (data.instance.equals(pd.instance) || "*".equals(data.instance)))
+ if (data.action!=null && (data.action.equals(pd.action) || "*".equals(data.action)))
return true;
} else{
String[] lp = p.getKey().split("\\|");
- if(lp.length<3)return false;
- if(data.fullType().equals(lp[0]))
- if(data.instance!=null && (data.instance.equals(lp[1]) || "*".equals(data.instance)))
- if(data.action!=null && (data.action.equals(lp[2]) || "*".equals(data.action)))
+ if (lp.length<3)return false;
+ if (data.fullType().equals(lp[0]))
+ if (data.instance!=null && (data.instance.equals(lp[1]) || "*".equals(data.instance)))
+ if (data.action!=null && (data.action.equals(lp[2]) || "*".equals(data.action)))
return true;
}
return false;
public String permType() {
return "AAFLUR";
}
-
+
}
-
+
public String toString() {
return "DirectAAFLur is enabled";
-
+
}
/* (non-Javadoc)
@Override
public Permission createPerm(String p) {
String[] params = Split.split('|', p);
- if(params.length==3) {
+ if (params.length==3) {
Result<NsSplit> nss = question.deriveNsSplit(NullTrans.singleton(), params[0]);
- if(nss.isOK()) {
+ if (nss.isOK()) {
return new PermPermission(nss.value.ns,nss.value.name,params[1],params[2]);
}
}