diff --git a/components/java/racm/build.gradle b/components/java/racm/build.gradle index d0f257e..1881d7e 100644 --- a/components/java/racm/build.gradle +++ b/components/java/racm/build.gradle @@ -13,7 +13,7 @@ group 'org.sciserver' checkstyle { - maxWarnings 33357 + maxWarnings 33400 } repositories { diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciServerHeaderAuthenticationFilter.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciServerHeaderAuthenticationFilter.java index d051e4d..8bbe84c 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciServerHeaderAuthenticationFilter.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciServerHeaderAuthenticationFilter.java @@ -7,6 +7,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.sciserver.springapp.loginterceptor.Log; import org.sciserver.springapp.racm.login.LoginPortalService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -18,6 +19,7 @@ import com.fasterxml.jackson.databind.JsonNode; import retrofit2.Response; +import sciserver.logging.ServiceLogTimer; @Component @ConditionalOnWebApplication @@ -38,7 +40,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { if(headerToken != null) { Response loginPortalResponse; try { + ServiceLogTimer timer = Log.get().startTimer("SciServerHeaderAuthenticationFilter.getPreAuthenticatedPrincipal:getTokenInfo [ms]"); loginPortalResponse = loginPortalService.getTokenInfo(headerToken).execute(); + timer.stop(); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverCookieAuthenticationFilter.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverCookieAuthenticationFilter.java index 1bfdf5a..a5c5a21 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverCookieAuthenticationFilter.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverCookieAuthenticationFilter.java @@ -9,6 +9,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.sciserver.springapp.loginterceptor.Log; import org.sciserver.springapp.racm.login.LoginPortalService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -21,6 +22,7 @@ import com.fasterxml.jackson.databind.JsonNode; import retrofit2.Response; +import sciserver.logging.ServiceLogTimer; @Component @ConditionalOnWebApplication @@ -40,7 +42,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { if(token != null) { Response loginPortalResponse; try { + ServiceLogTimer timer = Log.get().startTimer("SciserverCookieAuthenticationFilter.getPreAuthenticatedPrincipal:getTokenInfo [ms]"); loginPortalResponse = loginPortalService.getTokenInfo(token).execute(); + timer.stop(); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverQueryParamAuthenticationFilter.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverQueryParamAuthenticationFilter.java index 9751dac..9049773 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverQueryParamAuthenticationFilter.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/auth/SciserverQueryParamAuthenticationFilter.java @@ -2,11 +2,13 @@ import java.io.IOException; import java.io.UncheckedIOException; +import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.sciserver.springapp.loginterceptor.Log; import org.sciserver.springapp.racm.login.LoginPortalService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -18,7 +20,9 @@ import com.fasterxml.jackson.databind.JsonNode; +import edu.jhu.user.User; import retrofit2.Response; +import sciserver.logging.ServiceLogTimer; @Component @ConditionalOnWebApplication @@ -37,7 +41,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { if(token != null) { Response loginPortalResponse; try { + ServiceLogTimer timer = Log.get().startTimer("SciserverQueryParamAuthenticationFilter.getPreAuthenticatedPrincipal:getTokenInfo [ms]"); loginPortalResponse = loginPortalService.getTokenInfo(token).execute(); + timer.stop(); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/collaboration/application/CollaborationManager.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/collaboration/application/CollaborationManager.java index b91c399..96f9032 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/collaboration/application/CollaborationManager.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/collaboration/application/CollaborationManager.java @@ -29,6 +29,7 @@ import org.sciserver.racm.collaboration.model.ResourceWithAnyType; import org.sciserver.racm.collaboration.model.User; import org.sciserver.racm.utils.model.NativeQueryResult; +import org.sciserver.springapp.loginterceptor.Log; import org.sciserver.springapp.racm.ugm.controller.UserManagementRESTController; import org.sciserver.springapp.racm.ugm.domain.UserProfile; import org.sciserver.springapp.racm.utils.RACMNames; @@ -52,19 +53,27 @@ import edu.jhu.user.MemberStatus; import edu.jhu.user.SciserverEntity; import edu.jhu.user.UserGroup; +import sciserver.logging.ServiceLogTimer; @Repository public class CollaborationManager { public RepresentationModel getCollaborations(@ModelAttribute UserProfile up) { + ServiceLogTimer timer = Log.get().startTimer("CollaborationManager.getCollaborations:getGroups [ms]"); Collection groups = getGroups(up); + timer.stop(); + timer = Log.get().startTimer("CollaborationManager.getCollaborations:loadGroupUsers [ms]"); Collection entities = loadGroupUsers(up); - groups.forEach(ug -> ug.getMember().forEach(Member::getScisEntity)); + timer.stop(); + + groups.forEach(ug -> ug.getMember().forEach(Member::getScisEntity)); Map users = new HashMap<>(); + timer = Log.get().startTimer("CollaborationManager.getCollaborations:getAllResources [ms]"); Map> allResources = getAllResources(up, groups); + timer.stop(); Collection collaborationResourceList = groups diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/storem/application/FileServiceRepository.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/storem/application/FileServiceRepository.java index bf8d7f7..9af787d 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/storem/application/FileServiceRepository.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/storem/application/FileServiceRepository.java @@ -64,6 +64,7 @@ import org.sciserver.racm.storem.model.UpdatedUserVolumeInfo; import org.sciserver.racm.storem.model.UserVolumeModel; import org.sciserver.racm.utils.model.NativeQueryResult; +import org.sciserver.springapp.loginterceptor.Log; import org.sciserver.springapp.racm.login.InsufficientPermissionsException; import org.sciserver.springapp.racm.login.NotAuthorizedException; import org.sciserver.springapp.racm.ugm.domain.UserProfile; @@ -89,6 +90,7 @@ import edu.jhu.user.ServiceAccount; import edu.jhu.user.User; import edu.jhu.user.UserGroup; +import sciserver.logging.ServiceLogTimer; /* * Repository to obtain or register file service-related objects from a database @@ -142,7 +144,9 @@ public List getMinimalFileServices(UserProfile up) { ""; Query q = tom.createNativeQuery(sql).setParameter(1, up.getUsername()); List fms = new ArrayList(); + ServiceLogTimer timer = Log.get().startTimer("FileServiceRepository.getMinimalFileServices:tom.executeNativeQuery [ms]"); List rows = tom.executeNativeQuery(q); + timer.stop(); for(Object r : rows) { Object[] row = (Object[]) r; MinimalFileServiceModel fm = new MinimalFileServiceModel((String)row[0], (String)row[1],(String)row[2],(String)row[3]); diff --git a/components/java/racm/src/main/java/org/sciserver/springapp/racm/ugm/controller/UserManagementRESTController.java b/components/java/racm/src/main/java/org/sciserver/springapp/racm/ugm/controller/UserManagementRESTController.java index e73413b..6c23220 100644 --- a/components/java/racm/src/main/java/org/sciserver/springapp/racm/ugm/controller/UserManagementRESTController.java +++ b/components/java/racm/src/main/java/org/sciserver/springapp/racm/ugm/controller/UserManagementRESTController.java @@ -50,7 +50,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; - +import org.sciserver.springapp.loginterceptor.Log; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -62,6 +62,7 @@ import edu.jhu.user.ServiceAccount; import edu.jhu.user.User; import edu.jhu.user.UserGroup; +import sciserver.logging.ServiceLogTimer; @RestController @CrossOrigin @@ -530,7 +531,9 @@ private ResponseEntity respondToInvitation(Long groupId, boolean accep public ResponseEntity queryVisibleUsersAndGroups(@AuthenticationPrincipal UserProfile up, @RequestParam(name="users",required=false) String usersFilter) throws VOURPException { try { - List users = usersAndGroupsManager.queryPublicUsers(up, usersFilter); + ServiceLogTimer timer = Log.get().startTimer("queryPublicUsers [ms]"); + List users = usersAndGroupsManager.queryPublicUsers(up, usersFilter); + timer.stop(); List uis = new ArrayList<>(); for (User u : users) uis.add(UGMModelsMapper.map(u)); @@ -538,15 +541,20 @@ public ResponseEntity queryVisibleUsersAndGroups(@AuthenticationPrinci SciServerEntities ents = new SciServerEntities(); ents.setUsers(uis); if(usersFilter == null) { // also query for groups is users not explicitly requested + timer = Log.get().startTimer("queryAllGroups [ms]"); ents.setGroups(usersAndGroupsManager.queryAllGroups(up.getTom()) .stream() .filter(ug -> up.isAdmin() || !ug.getName().equals(RACMNames.USERGROUP_PUBLIC)) .map(ug -> UGMModelsMapper.map(ug, false)) .collect(toList())); + timer.stop(); } - if(up.isAdmin()) + if(up.isAdmin()) { + timer = Log.get().startTimer("queryAllServiceAccounts [ms]"); ents.setServices(usersAndGroupsManager.queryAllServiceAccounts(up.getTom()).stream().map(sa -> UGMModelsMapper.map(sa)).collect(toList())); + timer.stop(); + } JsonNode json = om.valueToTree(ents); return new ResponseEntity<>(json, HttpStatus.OK);