X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdao%2Fhl%2FQuestion.java;h=7201958d5b953cc449bba3c1e16466f65937900d;hb=f64f482462b697e06a47ad55aa5447dc829ce727;hp=43a88aa55d353368d5b9b23cc1a9fbb4113e8a19;hpb=9c67e0e7799a5bc15ec59ca9562879ec979c2e6e;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Question.java b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Question.java index 43a88aa5..7201958d 100644 --- a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Question.java +++ b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Question.java @@ -27,7 +27,6 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.List; @@ -89,7 +88,7 @@ import com.datastax.driver.core.Cluster; public class Question { // DON'T CHANGE FROM lower Case!!! - public static enum Type { + public enum Type { ns, role, perm, cred }; @@ -101,7 +100,7 @@ public class Question { static final String ASTERIX = "*"; - public static enum Access { + public enum Access { read, write, create }; @@ -132,9 +131,9 @@ public class Question { public final HistoryDAO historyDAO; public final CachedNSDAO nsDAO; - public final CachedRoleDAO roleDAO; + public CachedRoleDAO roleDAO; public final CachedPermDAO permDAO; - public final CachedUserRoleDAO userRoleDAO; + public CachedUserRoleDAO userRoleDAO; public final CachedCredDAO credDAO; public final CachedCertDAO certDAO; public final DelegateDAO delegateDAO; @@ -393,15 +392,21 @@ public class Question { return Result.ok(nsd); } else { int dot = str.lastIndexOf('.'); - - if (dot < 0) { - return Result.err(Status.ERR_NsNotFound, "No Namespace for [%s]", str); - } else { - return deriveFirstNsForType(trans, str.substring(0, dot),type); - } + + if (dot < 0) { + return Result.err(Status.ERR_NsNotFound, "No Namespace for [%s]", str); + } else { + return deriveFirstNsForType(trans, str.substring(0, dot),type); + } } } else { - return Result.err(Status.ERR_NsNotFound,"There is no valid Company Namespace for %s",str); + int dot = str.lastIndexOf('.'); + + if (dot < 0) { + return Result.err(Status.ERR_NsNotFound,"There is no valid Company Namespace for %s",str); + } else { + return deriveFirstNsForType(trans, str.substring(0, dot),type); + } } } return Result.err(Status.ERR_NotFound, str + " does not contain type " + type.name()); @@ -748,7 +753,7 @@ public class Question { trans.audit().log("Special DEBUG:", user, " does not exist in DB"); } } else { - Date now = new Date();//long now = System.currentTimeMillis(); + Date now = new Date(); // Bug noticed 6/22. Sorting on the result can cause Concurrency Issues. List cddl; if (result.value.size() > 1) { @@ -759,13 +764,7 @@ public class Question { } } if (cddl.size()>1) { - Collections.sort(cddl,new Comparator() { - @Override - public int compare(org.onap.aaf.auth.dao.cass.CredDAO.Data a, - org.onap.aaf.auth.dao.cass.CredDAO.Data b) { - return b.expires.compareTo(a.expires); - } - }); + Collections.sort(cddl, (a, b) -> b.expires.compareTo(a.expires)); } } else { cddl = result.value; @@ -942,32 +941,32 @@ public class Question { Result rv = null; if (all || NsDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(NsDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, NsDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, NsDAO.TABLE, seg); } if (all || PermDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(PermDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, PermDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, PermDAO.TABLE,seg); } if (all || RoleDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(RoleDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, RoleDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, RoleDAO.TABLE,seg); } if (all || UserRoleDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(UserRoleDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, UserRoleDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, UserRoleDAO.TABLE,seg); } if (all || CredDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(CredDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, CredDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, CredDAO.TABLE,seg); } if (all || CertDAO.TABLE.equals(cname)) { - int seg[] = series(NsDAO.CACHE_SEG); + int[] seg = series(CertDAO.CACHE_SEG); for (int i: seg) {cacheClear(trans, CertDAO.TABLE,i);} rv = cacheInfoDAO.touch(trans, CertDAO.TABLE,seg); } @@ -1094,11 +1093,13 @@ public class Question { public boolean isAdmin(AuthzTrans trans, String user, String ns) { Date now = new Date(); Result> rur = userRoleDAO.read(trans, user,ns+DOT_ADMIN); - if (rur.isOKhasData()) {for (UserRoleDAO.Data urdd : rur.value){ - if (urdd.expires.after(now)) { - return true; - } - }}; + if (rur.isOKhasData()) { + for (UserRoleDAO.Data urdd : rur.value){ + if (urdd.expires.after(now)) { + return true; + } + } + }; return false; }