438 lines
17 KiB
Java
438 lines
17 KiB
Java
//package org.gcube.application.framework.core.security;
|
|
//
|
|
//import java.io.BufferedReader;
|
|
//import java.io.File;
|
|
//import java.io.FileNotFoundException;
|
|
//import java.io.FileReader;
|
|
//import java.io.IOException;
|
|
//import java.rmi.RemoteException;
|
|
//import java.util.ArrayList;
|
|
//import java.util.List;
|
|
//
|
|
//import javax.xml.rpc.ServiceException;
|
|
//
|
|
//import org.apache.axis.message.addressing.AttributedURI;
|
|
//import org.apache.axis.message.addressing.EndpointReferenceType;
|
|
//import org.apache.axis.types.URI.MalformedURIException;
|
|
//import org.gcube.application.framework.core.session.ASLSession;
|
|
//import org.gcube.application.framework.core.util.ASLGroupModel;
|
|
//import org.gcube.application.framework.core.util.Settings;
|
|
//import org.gcube.application.framework.core.util.UsersManagementServiceConstants;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GetGroupParentId;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GetRootVO;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GetScope;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GetUserId;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GroupModel;
|
|
//import org.gcube.vomanagement.usermanagement.ws.GroupRetrievalFault;
|
|
//import org.gcube.vomanagement.usermanagement.ws.IsRootVO;
|
|
//import org.gcube.vomanagement.usermanagement.ws.IsVO;
|
|
//import org.gcube.vomanagement.usermanagement.ws.LiferaySOAPGroupManagerPortType;
|
|
//import org.gcube.vomanagement.usermanagement.ws.LiferaySOAPUserManagerPortType;
|
|
//import org.gcube.vomanagement.usermanagement.ws.ListGroups;
|
|
//import org.gcube.vomanagement.usermanagement.ws.ListGroupsByUser;
|
|
//import org.gcube.vomanagement.usermanagement.ws.ListGroupsResponse;
|
|
//import org.gcube.vomanagement.usermanagement.ws.UserManagementSystemException;
|
|
//import org.gcube.vomanagement.usermanagement.ws.service.LiferaySOAPGroupManagerServiceAddressingLocator;
|
|
//import org.gcube.vomanagement.usermanagement.ws.service.LiferaySOAPUserManagerServiceAddressingLocator;
|
|
//
|
|
//import org.slf4j.Logger;
|
|
//import org.slf4j.LoggerFactory;
|
|
//
|
|
//public class UsersManagementUtils {
|
|
//
|
|
// /** The logger. */
|
|
// private static final Logger logger = LoggerFactory.getLogger(UsersManagementUtils.class);
|
|
//
|
|
// String umServiceLocation = new String();
|
|
//
|
|
// public UsersManagementUtils() {
|
|
// StringBuffer fileData = new StringBuffer(1000);
|
|
// BufferedReader reader = null;
|
|
// try {
|
|
// reader = new BufferedReader(new FileReader(Settings.getInstance().getProperty("sharedDir")+ File.separator + "UMServiceLocation.config"));
|
|
// } catch (FileNotFoundException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// int numRead = 0;
|
|
// char[] buf = new char[1024];
|
|
// try {
|
|
// while((numRead=reader.read(buf)) != -1){
|
|
// String readData = String.valueOf(buf, 0, numRead);
|
|
// fileData.append(readData);
|
|
// buf = new char[1024];
|
|
// }
|
|
// } catch (IOException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// try {
|
|
// reader.close();
|
|
// } catch (IOException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// umServiceLocation = fileData.toString().trim();
|
|
// }
|
|
//
|
|
// public ArrayList<String> getAllScopes(ASLSession session) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// ArrayList<String> groupsNames = new ArrayList<String>();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
// ListGroups groups = new ListGroups();
|
|
//
|
|
// ListGroupsResponse resGroup = groupStub.listGroups(groups);
|
|
//
|
|
// GroupModel[] groupList = resGroup.get_return();
|
|
//
|
|
// for (GroupModel groupModel : groupList) {
|
|
// logger.info("Group NAME " + groupModel.getGroupName());
|
|
//
|
|
// GetRootVO rootVO = new GetRootVO();
|
|
// if (!groupStub.getRootVO(rootVO).get_return().getGroupId().equals(groupModel.getGroupId())) {
|
|
// String scope = null;
|
|
//
|
|
// GetScope getScope = new GetScope();
|
|
// getScope.setArg0(groupModel.getGroupId());
|
|
// scope = groupStub.getScope(getScope).get_return();
|
|
//
|
|
// if (scope.startsWith("/"))
|
|
// groupsNames.add(scope);
|
|
// }
|
|
// }
|
|
//
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return groupsNames;
|
|
//
|
|
// }
|
|
//
|
|
//
|
|
// public String getRootVO() {
|
|
//
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// ArrayList<String> groupsNames = new ArrayList<String>();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// LiferaySOAPGroupManagerPortType groupStub = null;
|
|
// try {
|
|
// groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// ListGroups groups = new ListGroups();
|
|
//
|
|
// try {
|
|
// ListGroupsResponse resGroup = groupStub.listGroups(groups);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// GetRootVO rootVO = new GetRootVO();
|
|
// try {
|
|
// String rootVo = groupStub.getRootVO(rootVO).get_return().getGroupId();
|
|
// String rootVoName = getScope(rootVo);
|
|
// logger.info("RootVo returning: " + rootVoName);
|
|
// return rootVoName;
|
|
// } catch (GroupRetrievalFault e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return null;
|
|
// }
|
|
//
|
|
//
|
|
// public String getUserId(String username) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// String userId = null;
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPUserManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPUserManager));
|
|
//
|
|
// try {
|
|
// LiferaySOAPUserManagerPortType userManagerStub = new LiferaySOAPUserManagerServiceAddressingLocator().getLiferaySOAPUserManagerPortTypePort(endpointUser);
|
|
// GetUserId getUserId = new GetUserId();
|
|
// getUserId.setArg0(username);
|
|
// userId = userManagerStub.getUserId(getUserId).get_return();
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// return userId;
|
|
// }
|
|
//
|
|
//
|
|
// public List<ASLGroupModel> listGroupsByUser(String userId) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// List<ASLGroupModel> groupsByUser = new ArrayList<ASLGroupModel>();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
// ListGroupsByUser listGroupsByUser = new ListGroupsByUser();
|
|
// listGroupsByUser.setArg0(userId);
|
|
// GroupModel[] groups = groupStub.listGroupsByUser(listGroupsByUser).get_return();
|
|
// if(groups==null)
|
|
// logger.debug("User is in no group.");
|
|
// for (int i = 0; i < groups.length; i++) {
|
|
// ASLGroupModel grm = new ASLGroupModel();
|
|
// grm.setGroupId(new Long(groups[i].getGroupId()));
|
|
// grm.setGroupName(groups[i].getGroupName());
|
|
// grm.setDescription(groups[i].getDescription());
|
|
// groupsByUser.add(grm);
|
|
// }
|
|
//
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return groupsByUser;
|
|
// }
|
|
//
|
|
//
|
|
// public List<ASLGroupModel> listGroups() {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// List<ASLGroupModel> groups = new ArrayList<ASLGroupModel>();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
// ListGroups listGroups = new ListGroups();
|
|
// GroupModel[] groupsArray = groupStub.listGroups(listGroups).get_return();
|
|
// for (int i = 0; i < groupsArray.length; i++) {
|
|
// ASLGroupModel gm = new ASLGroupModel();
|
|
// gm.setGroupId(new Long(groupsArray[i].getGroupId()));
|
|
// gm.setGroupName(groupsArray[i].getGroupName());
|
|
// gm.setDescription(groupsArray[i].getDescription());
|
|
// groups.add(gm);
|
|
// }
|
|
//
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return groups;
|
|
// }
|
|
//
|
|
//
|
|
// public boolean isVO(String groupId) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// List<GroupModel> groups = new ArrayList<GroupModel>();
|
|
// boolean isVO = false;
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
//
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
//
|
|
// IsVO isVo = new IsVO();
|
|
// isVo.setArg0(groupId);
|
|
// isVO = groupStub.isVO(isVo).get_return();
|
|
// return isVO;
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (GroupRetrievalFault e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return false;
|
|
// }
|
|
//
|
|
//
|
|
// public boolean isRootVO(String groupId) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// boolean isVO = false;
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
//
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
//
|
|
// IsRootVO isRootVo = new IsRootVO();
|
|
// isRootVo.setArg0(groupId);
|
|
// isVO = groupStub.isRootVO(isRootVo).get_return();
|
|
// return isVO;
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (GroupRetrievalFault e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return false;
|
|
// }
|
|
//
|
|
//
|
|
// public String getScope(String groupId) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
//
|
|
// GetScope getScope = new GetScope();
|
|
// getScope.setArg0(groupId);
|
|
// String scope = groupStub.getScope(getScope).get_return();
|
|
// return scope;
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (GroupRetrievalFault e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return null;
|
|
// }
|
|
//
|
|
//
|
|
// public String getGroupParentId(String groupId) {
|
|
// EndpointReferenceType endpointUser = new EndpointReferenceType();
|
|
// try {
|
|
// //endpointUser.setAddress(new AttributedURI("http://dl10.di.uoa.gr:8181/usermanagement-ws/LiferaySOAPGroupManager"));
|
|
// endpointUser.setAddress(new AttributedURI(umServiceLocation + UsersManagementServiceConstants.LiferaySOAPGroupManager));
|
|
// } catch (MalformedURIException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
// LiferaySOAPGroupManagerServiceAddressingLocator loc = new LiferaySOAPGroupManagerServiceAddressingLocator();
|
|
// try {
|
|
// LiferaySOAPGroupManagerPortType groupStub = loc.getLiferaySOAPGroupManagerPortTypePort(endpointUser);
|
|
//
|
|
// GetGroupParentId getGroupParentId = new GetGroupParentId();
|
|
// getGroupParentId.setArg0(groupId);
|
|
// long parentId = groupStub.getGroupParentId(getGroupParentId).get_return();
|
|
// return Long.toString(parentId);
|
|
// } catch (ServiceException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (GroupRetrievalFault e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (UserManagementSystemException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// } catch (RemoteException e) {
|
|
// // TODO Auto-generated catch block
|
|
// logger.error("Exception:", e);
|
|
// }
|
|
//
|
|
// return null;
|
|
// }
|
|
//
|
|
//
|
|
//}
|