Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/java/racm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ group 'org.sciserver'


checkstyle {
maxWarnings 33357
maxWarnings 33400
}

repositories {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -18,6 +19,7 @@
import com.fasterxml.jackson.databind.JsonNode;

import retrofit2.Response;
import sciserver.logging.ServiceLogTimer;

@Component
@ConditionalOnWebApplication
Expand All @@ -38,7 +40,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
if(headerToken != null) {
Response<JsonNode> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -21,6 +22,7 @@
import com.fasterxml.jackson.databind.JsonNode;

import retrofit2.Response;
import sciserver.logging.ServiceLogTimer;

@Component
@ConditionalOnWebApplication
Expand All @@ -40,7 +42,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
if(token != null) {
Response<JsonNode> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -18,7 +20,9 @@

import com.fasterxml.jackson.databind.JsonNode;

import edu.jhu.user.User;
import retrofit2.Response;
import sciserver.logging.ServiceLogTimer;

@Component
@ConditionalOnWebApplication
Expand All @@ -37,7 +41,9 @@ protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
if(token != null) {
Response<JsonNode> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<? extends Object> getCollaborations(@ModelAttribute UserProfile up) {
ServiceLogTimer timer = Log.get().startTimer("CollaborationManager.getCollaborations:getGroups [ms]");
Collection<UserGroup> groups = getGroups(up);
timer.stop();

timer = Log.get().startTimer("CollaborationManager.getCollaborations:loadGroupUsers [ms]");
Collection<SciserverEntity> entities = loadGroupUsers(up);
groups.forEach(ug -> ug.getMember().forEach(Member::getScisEntity));
timer.stop();

groups.forEach(ug -> ug.getMember().forEach(Member::getScisEntity));

Map<Long, User> users = new HashMap<>();

timer = Log.get().startTimer("CollaborationManager.getCollaborations:getAllResources [ms]");
Map<UserGroup, List<ResourceFacade>> allResources = getAllResources(up, groups);
timer.stop();

Collection<Collaboration> collaborationResourceList =
groups
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -142,7 +144,9 @@ public List<MinimalFileServiceModel> getMinimalFileServices(UserProfile up) {
"";
Query q = tom.createNativeQuery(sql).setParameter(1, up.getUsername());
List<MinimalFileServiceModel> fms = new ArrayList<MinimalFileServiceModel>();
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]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -530,23 +531,30 @@ private ResponseEntity<JsonNode> respondToInvitation(Long groupId, boolean accep
public ResponseEntity<JsonNode> queryVisibleUsersAndGroups(@AuthenticationPrincipal UserProfile up,
@RequestParam(name="users",required=false) String usersFilter) throws VOURPException {
try {
List<User> users = usersAndGroupsManager.queryPublicUsers(up, usersFilter);
ServiceLogTimer timer = Log.get().startTimer("queryPublicUsers [ms]");
List<User> users = usersAndGroupsManager.queryPublicUsers(up, usersFilter);
timer.stop();
List<UserInfo> uis = new ArrayList<>();
for (User u : users)
uis.add(UGMModelsMapper.map(u));

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);
Expand Down