X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-batch%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fbatch%2Freports%2FNotInOrg.java;h=bd56fc2ee84a89c5009f7ad3d35ed938cb346eb5;hb=3d1706fcbe7f95830ff6fd23cf679ee55c6d0595;hp=2ba5d0221eb9854cba6b65ee453f8a7eec5f4f56;hpb=fad7e682d0a0bbb8e218dabd9381634955ff80ad;p=aaf%2Fauthz.git diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/NotInOrg.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/NotInOrg.java index 2ba5d022..bd56fc2e 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/NotInOrg.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/NotInOrg.java @@ -32,7 +32,6 @@ import org.onap.aaf.auth.batch.Batch; import org.onap.aaf.auth.batch.helpers.Cred; import org.onap.aaf.auth.batch.helpers.Cred.Instance; import org.onap.aaf.auth.batch.helpers.UserRole; -import org.onap.aaf.auth.batch.helpers.Visitor; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.org.Organization; import org.onap.aaf.auth.org.Organization.Identity; @@ -47,17 +46,16 @@ import org.onap.aaf.misc.env.util.Chrono; public class NotInOrg extends Batch { - private static final String NOT_IN_ORG = "NotInOrg"; - private static final String CSV = ".csv"; - private static final String INFO = "info"; - private Map writerList; - private Map whichWriter; - private File logDir; - private Date now; - private Writer notInOrgW; - private Writer notInOrgDeleteW; - - public NotInOrg(AuthzTrans trans) throws APIException, IOException, OrganizationException { + private static final String NOT_IN_ORG = "NotInOrg"; + private static final String CSV = ".csv"; + private static final String INFO = "info"; + private Map writerList; + private Map whichWriter; + private Date now; + private Writer notInOrgW; + private Writer notInOrgDeleteW; + + public NotInOrg(AuthzTrans trans) throws APIException, IOException, OrganizationException { super(trans.env()); trans.info().log("Starting Connection Process"); @@ -76,21 +74,19 @@ public class NotInOrg extends Batch { // Create Intermediate Output writerList = new HashMap<>(); whichWriter = new TreeMap<>(); - logDir = new File(logDir()); - logDir.mkdirs(); now = new Date(); String sdate = Chrono.dateOnlyStamp(now); - File file = new File(logDir,NOT_IN_ORG + sdate +CSV); - CSV csv = new CSV(file); + File file = new File(logDir(),NOT_IN_ORG + sdate +CSV); + CSV csv = new CSV(env.access(),file); notInOrgW = csv.writer(false); notInOrgW.row(INFO,NOT_IN_ORG,Chrono.dateOnlyStamp(now),0); writerList.put(NOT_IN_ORG,notInOrgW); // These will have been double-checked by the Organization, and can be deleted immediately. String fn = NOT_IN_ORG+"Delete"; - file = new File(logDir,fn + sdate +CSV); - CSV csvDelete = new CSV(file); + file = new File(logDir(),fn + sdate +CSV); + CSV csvDelete = new CSV(env.access(),file); notInOrgDeleteW = csvDelete.writer(false); notInOrgDeleteW.row(INFO,fn,Chrono.dateOnlyStamp(now),0); writerList.put(NOT_IN_ORG,notInOrgW); @@ -102,99 +98,75 @@ public class NotInOrg extends Batch { @Override protected void run(AuthzTrans trans) { - try { - Map checked = new TreeMap(); - trans.info().log("Process Organization Identities"); - trans.info().log("User Roles"); - - final AuthzTrans transNoAvg = trans.env().newTransNoAvg(); - UserRole.load(trans, session, UserRole.v2_0_11, new Visitor() { - @Override - public void visit(UserRole ur) { - try { - if(!check(transNoAvg, checked, ur.user())) { - ur.row(whichWriter(transNoAvg,ur.user())); - } - } catch (OrganizationException e) { - trans.error().log(e, "Error Decrypting X509"); - } - } - }); - - trans.info().log("Checking for Creds without IDs"); - - for (Cred cred : Cred.data.values()) { - if(!check(transNoAvg,checked, cred.id)) { - CSV.Writer cw = whichWriter(transNoAvg, cred.id); - for(Instance inst : cred.instances) { - cred.row(cw, inst); - } - } - } - - /* - * Do we delete now? Or work on Revocation semantics - * - trans.info().log("Checking for X509s without IDs"); - X509.load(trans, session, new Visitor() { - @Override - public void visit(X509 x509) { - try { - for(Certificate cert : Factory.toX509Certificate(x509.x509)) { - X509Certificate xc = (X509Certificate)cert; - xc.getSubjectDN(); - if(!check(transNoAvg,checked, (X))) { - x509.row(notInOrgW,); - } - } - } catch (CertificateException | IOException e) { - trans.error().log(e, "Error Decrypting X509"); - } - } - }); - */ - } catch (OrganizationException e) { - trans.info().log(e); - } - } + try { + Map checked = new TreeMap(); + trans.info().log("Process Organization Identities"); + trans.info().log("User Roles"); + + final AuthzTrans transNoAvg = trans.env().newTransNoAvg(); + UserRole.load(trans, session, UserRole.v2_0_11, ur -> { + try { + if(!check(transNoAvg, checked, ur.user())) { + ur.row(whichWriter(transNoAvg,ur.user()),UserRole.UR); + } + } catch (OrganizationException e) { + trans.error().log(e, "Error Decrypting X509"); + } + }); + + trans.info().log("Checking for Creds without IDs"); + + for (Cred cred : Cred.data.values()) { + if(!check(transNoAvg,checked, cred.id)) { + CSV.Writer cw = whichWriter(transNoAvg, cred.id); + for(Instance inst : cred.instances) { + cred.row(cw, inst); + } + } + } + + } catch (OrganizationException e) { + trans.info().log(e); + } + } - private Writer whichWriter(AuthzTrans transNoAvg, String id) { - Writer w = whichWriter.get(id); - if(w==null) { - w = org.mayAutoDelete(transNoAvg, id)? - notInOrgDeleteW: - notInOrgW; - whichWriter.put(id,w); - } - return w; - } + private Writer whichWriter(AuthzTrans transNoAvg, String id) { + Writer w = whichWriter.get(id); + if(w==null) { + w = org.isRevoked(transNoAvg, id)? + notInOrgDeleteW: + notInOrgW; + whichWriter.put(id,w); + } + return w; + } - private boolean check(AuthzTrans trans, Map checked, String id) throws OrganizationException { - Boolean rv = checked.get(id); - if(rv==null) { - if(isSpecial(id)) { // do not check against org... too important to delete. - return true; - } - Organization org = trans.org(); - if(org != null) { - Identity identity = org.getIdentity(trans, id); - rv = identity!=null; - checked.put(id, rv); - } else { - throw new OrganizationException("No Organization Found for " + id + ": required for processing"); - } - } - return rv; - } + private boolean check(AuthzTrans trans, Map checked, String id) throws OrganizationException { + Boolean rv = checked.get(id); + if(rv==null) { + if(isSpecial(id)) { // do not check against org... too important to delete. + return true; + } + Organization org = trans.org(); + if(org != null) { + Identity identity = org.getIdentity(trans, id); + rv = identity!=null; + checked.put(id, rv); + } else { + throw new OrganizationException("No Organization Found for " + id + ": required for processing"); + } + } + return rv; + } - @Override + @Override protected void _close(AuthzTrans trans) { session.close(); - for(CSV.Writer cw : writerList.values()) { - cw.close(); - } + for(CSV.Writer cw : writerList.values()) { + cw.close(); + } } }