import java.util.Collection;
import java.util.List;
-import org.apache.log4j.Logger;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.Permission;
import org.onap.aaf.cadi.Access;
+import org.onap.aaf.cadi.Access.Level;
+import org.onap.aaf.cadi.aaf.AAFPermission;
/**
* We treat "roles" and "permissions" in a similar way for first pass.
*
*/
public class AAFAuthorizationInfo implements AuthorizationInfo {
-
- final static Logger logger = Logger.getLogger(AuthorizationInfo.class);
-
private static final long serialVersionUID = -4805388954462426018L;
+
private Access access;
private Principal bait;
- private List<org.onap.aaf.cadi.Permission> pond;
- private ArrayList<String> sPerms;
- private ArrayList<Permission> oPerms;
+ // Use these to save conversions
+ private List<org.onap.aaf.cadi.Permission> cPerms;
+ private List<Permission> oPerms;
+ private List<String> sPerms;
- public AAFAuthorizationInfo(Access access, Principal bait, List<org.onap.aaf.cadi.Permission> pond) {
+ public AAFAuthorizationInfo(Access access, Principal bait) {
this.access = access;
this.bait = bait;
- this.pond = pond;
- sPerms=null;
+ cPerms=null;
oPerms=null;
+ sPerms=null;
}
public Principal principal() {
@Override
public Collection<Permission> getObjectPermissions() {
- logger.debug("AAFAuthorizationInfo.getObjectPermissions");
+ access.log(Level.DEBUG, "AAFAuthorizationInfo.getObjectPermissions");
synchronized(bait) {
if(oPerms == null) {
- oPerms = new ArrayList<Permission>();
- for(final org.onap.aaf.cadi.Permission p : pond) {
+ oPerms = new ArrayList<>();
+ if(cPerms==null) {
+ cPerms = new ArrayList<>();
+ AAFRealm.singleton.authz.fishAll(bait, cPerms);
+ }
+ for(final org.onap.aaf.cadi.Permission p : cPerms) {
oPerms.add(new AAFShiroPermission(p));
}
}
@Override
public Collection<String> getRoles() {
- logger.debug("AAFAuthorizationInfo.getRoles");
+ access.log(Level.DEBUG,"AAFAuthorizationInfo.getRoles");
// Until we decide to make Roles available, tie into String based permissions.
return getStringPermissions();
}
@Override
public Collection<String> getStringPermissions() {
- logger.debug("AAFAuthorizationInfo.getStringPermissions");
+ access.log(Level.DEBUG,"AAFAuthorizationInfo.getStringPermissions");
synchronized(bait) {
if(sPerms == null) {
- sPerms = new ArrayList<String>();
- for(org.onap.aaf.cadi.Permission p : pond) {
- sPerms.add(p.getKey().replace("|",":"));
+ sPerms = new ArrayList<>();
+ if(cPerms==null) {
+ cPerms = new ArrayList<>();
+ AAFRealm.singleton.authz.fishAll(bait,cPerms);
+ }
+ for(final org.onap.aaf.cadi.Permission p : cPerms) {
+ sPerms.add(p.getKey());
}
}
}