From d915df491f305e60ac59f4e8411f28cebdb70c06 Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Mon, 11 Nov 2024 22:08:12 +0100 Subject: [PATCH] auth: func renames and removes unused func --- .../src/main/java/auth/authz/AuthPolicy.java | 200 ++++-------------- .../java/auth/authz/webapi/AuthZFilter.java | 10 +- 2 files changed, 43 insertions(+), 167 deletions(-) diff --git a/data-access/servlet/src/main/java/auth/authz/AuthPolicy.java b/data-access/servlet/src/main/java/auth/authz/AuthPolicy.java index 4c36dc2..d0873c6 100644 --- a/data-access/servlet/src/main/java/auth/authz/AuthPolicy.java +++ b/data-access/servlet/src/main/java/auth/authz/AuthPolicy.java @@ -40,24 +40,6 @@ public class AuthPolicy private String[] userGroups; private boolean userGroupsValid; -// private String dbConnUrl; -// private String dbUserName; -// private String dbPassword; - -/* - public AuthPolicy(String userName, String[] userGroups) - { - this.userName = userName; - this.userGroups = userGroups; - this.userGroupsValid = true; - - access = Access.PUBLIC_AND_AUTHORIZED_PRIVATE; - - LOGGER.finer("User [Groups]: " + userName + " [ " + String.join(" ", userGroups) + " ]" ); - } -*/ - - public AuthPolicy(Principal principal) { @@ -97,69 +79,7 @@ public class AuthPolicy } - - public String getUserName() - { - return userName; - } - - public boolean getUserGroupsValid() - { - return userGroupsValid; - } - - - public String[] getUserGroups() - { - return userGroups; - } - - public String getUserGroupsSqlFormat() - { - if( (userGroups != null) && (userGroups.length > 0) ) - { - return "\"" + String.join("\",\"" , userGroups) + "\""; - } - else - { - return null; - } - } - - public String getUserGroupsAsString(String separator) - { - if( (userGroups != null) && (userGroups.length > 0) ) - { - return String.join(separator, userGroups); - } - else - { - return null; - } - } - - - - - public String getAccessPolicy() - { - return access.name(); // returns enum as string - } - - - - public void toXML(PrintWriter writer) - { - writer.println("<AccessPolicy>" + this.getAccessPolicy() + "</AccessPolicy>"); - String ug = getUserGroupsAsString(" "); - if(userName != null) writer.println("<UserName>" + userName + "</UserName>"); - if(ug != null) writer.println("<GroupNames>" + ug + "</GroupNames>"); - } - - - // API - - public String[] filterAuthorized(String[] pubdidArr) + public String[] removeNotAuthorized(String[] pubdidArr) { LOGGER.finer("trace"); @@ -168,7 +88,6 @@ public class AuthPolicy switch(access) { case PUBLIC_ONLY : - //filterNotPublic(pubdidList); AuthPolicyDb adb; synchronized(AuthPolicyDb.class) { @@ -177,78 +96,21 @@ public class AuthPolicy pubdidList = adb.selectPublicOnly(pubdidArr); break; - case PUBLIC_AND_AUTHORIZED_PRIVATE : - filterNotAuthorized(pubdidList); + List<AuthPolicyDb.PubdidGroups> privateGroups = dbQueryPrivateUniqGroups(pubdidList); + List<String> notAuthorizedPubdids = selectNotAuthorized(privateGroups, userGroups); + removeNotAuthZd(pubdidList, notAuthorizedPubdids); break; default : assert false : "Unrecoginzed access : " + access; } - return pubdidList.toArray(new String[0]); - } - - - // remove PRIVATE from the list - /* - private void filterNotPublic(ArrayList<String> pubdids) - { - LOGGER.fine("trace"); - assert pubdids != null; - LOGGER.finer("PublisherDID list original : " + String.join(" ", pubdids)); - - List<AuthPolicyDb.PubdidGroups> privateUniqPubdids = db_queryPrivateUniqPubdidGroups(pubdids); - - List<String> notAuthorizedUniqPubdids = pubdidsNotPublic(privateUniqPubdids, userGroups); - - LOGGER.finest("AuthZ removes: " + String.join(" ", notAuthorizedUniqPubdids)); - - removeNotAuthorized(pubdids, notAuthorizedUniqPubdids); - - LOGGER.finest("PublisherDID list filtered : " + (pubdids.isEmpty() ? "" : String.join(" ", pubdids))); - } - private List<String> pubdidsNotPublic(List<AuthPolicyDb.PubdidGroups> pubdidList, String[] userGroups) - { - LOGGER.fine("trace"); - - ListIterator<AuthPolicyDb.PubdidGroups> it = pubdidList.listIterator(); - List<String> pubdidsNotAuthorizedList = new LinkedList<String>(); - while (it.hasNext()) - { - AuthPolicyDb.PubdidGroups pubdidGroups = it.next(); - - if( true )// isIntersectionEmpty(pubdidGroups.groups, userGroups) ) - { - pubdidsNotAuthorizedList.add(pubdidGroups.pubdid); - } - } - - return pubdidsNotAuthorizedList; - } - */ - - // remove not-authorized from the list - - private void filterNotAuthorized(List<String> pubdids) - { - LOGGER.fine("trace"); - assert pubdids != null; - LOGGER.finer("PublisherDID list original : " + String.join(" ", pubdids)); - - List<AuthPolicyDb.PubdidGroups> privateUniqPubdids = db_queryPrivateUniqPubdidGroups(pubdids); - - List<String> notAuthorizedUniqPubdids = pubdidsNotAuthorized(privateUniqPubdids, userGroups); - - LOGGER.finest("AuthZ removes: " + String.join(" ", notAuthorizedUniqPubdids)); - - removeNotAuthorized(pubdids, notAuthorizedUniqPubdids); - - LOGGER.finest("PublisherDID list filtered : " + (pubdids.isEmpty() ? "" : String.join(" ", pubdids))); + return pubdidList.toArray(new String[0]); } - private List<String> pubdidsNotAuthorized(List<AuthPolicyDb.PubdidGroups> pubdidList, String[] userGroups) + private List<String> selectNotAuthorized(List<AuthPolicyDb.PubdidGroups> pubdidList, String[] userGroups) { LOGGER.fine("trace"); @@ -271,8 +133,21 @@ public class AuthPolicy } + private boolean isIntersectionEmpty(String[] stringsA, String[] stringsB) + { + for(String strA : stringsA) + for(String strB : stringsB) + { + if(strA.equals(strB)) + { + return false; + } + } + return true; + } + - private void removeNotAuthorized(List<String> pubdids, List<String> notAuthorizedUniqPubdids) + private void removeNotAuthZd(List<String> pubdids, List<String> notAuthorizedUniqPubdids) { ListIterator<String> itr = pubdids.listIterator(); while (itr.hasNext()) @@ -289,23 +164,7 @@ public class AuthPolicy } - private boolean isIntersectionEmpty(String[] stringsA, String[] stringsB) - { - for(String strA : stringsA) - for(String strB : stringsB) - { - if(strA.equals(strB)) - { - return false; - } - } - return true; - } - - - // DB-query - - private List<AuthPolicyDb.PubdidGroups> db_queryPrivateUniqPubdidGroups(List<String> pubdids) + private List<AuthPolicyDb.PubdidGroups> dbQueryPrivateUniqGroups(List<String> pubdids) { AuthPolicyDb adb; synchronized(AuthPolicyDb.class) @@ -329,6 +188,23 @@ public class AuthPolicy } + // API (XmlSerialize to legacy results-xml) + + public String getAccessPolicy() { return access.name(); } + public String getUserName() { return userName; } + public String[] getUserGroups() { return userGroups; } + + public String getUserGroupsAsString(String separator) + { + if( (userGroups != null) && (userGroups.length > 0) ) + { + return String.join(separator, userGroups); + } + else + { + return null; + } + } } diff --git a/data-access/servlet/src/main/java/auth/authz/webapi/AuthZFilter.java b/data-access/servlet/src/main/java/auth/authz/webapi/AuthZFilter.java index ed9b0ec..4223e65 100644 --- a/data-access/servlet/src/main/java/auth/authz/webapi/AuthZFilter.java +++ b/data-access/servlet/src/main/java/auth/authz/webapi/AuthZFilter.java @@ -94,23 +94,23 @@ class AuthZ throw new IllegalArgumentException("Authorization : UserPrincipal is not of expected type"); } String[] pubdidArr = pubdidList.toArray(new String[pubdidList.size()]); - String[] authorized_pubdids; - authorized_pubdids = auth.filterAuthorized(pubdidArr); + String[] authorizedPubdids; + authorizedPubdids = auth.removeNotAuthorized(pubdidArr); /* If multiplicity allowed (and in mcutout/merge): * if one or more of pubdids not-authorized -> all request not authorized * */ /* NOTE for now soda/vlkb_cutout does not allow multiplicity --> only one pubdid allowed */ - if((authorized_pubdids==null) || (pubdidArr==null)) + if((authorizedPubdids==null) || (pubdidArr==null)) { LOGGER.warning("One of arrays null"); return true; } else { - LOGGER.finest("authorized vs original length: "+authorized_pubdids.length + " / " + pubdidArr.length); - return (authorized_pubdids.length == pubdidArr.length); + LOGGER.finest("authorized vs original length: "+authorizedPubdids.length + " / " + pubdidArr.length); + return (authorizedPubdids.length == pubdidArr.length); } } -- GitLab