git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/application-support-layer/applicationSupportLayerCore@11249 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
4660327219
commit
d988669b89
|
@ -1,206 +0,0 @@
|
||||||
package org.gcube.application.framework.core.commons;
|
|
||||||
|
|
||||||
import java.rmi.RemoteException;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
import org.apache.axis.message.addressing.Address;
|
|
||||||
import org.apache.axis.message.addressing.EndpointReference;
|
|
||||||
import org.apache.axis.message.addressing.EndpointReferenceType;
|
|
||||||
import org.gcube.application.framework.core.cache.RIsManager;
|
|
||||||
import org.gcube.application.framework.core.security.ServiceContextManager;
|
|
||||||
import org.gcube.common.core.faults.GCUBEFault;
|
|
||||||
import org.gcube.common.core.scope.GCUBEScope;
|
|
||||||
import org.gcube.informationsystem.cache.SrvType;
|
|
||||||
import org.gcube.personalization.profileadministration.stubs.ProfileAdministrationPortType;
|
|
||||||
import org.gcube.personalization.profileadministration.stubs.service.ProfileAdministrationServiceAddressingLocator;
|
|
||||||
import org.gcube.personalization.userprofileaccess.stubs.UserProfileAccessFactoryPortType;
|
|
||||||
import org.gcube.personalization.userprofileaccess.stubs.UserProfileAccessPortType;
|
|
||||||
import org.gcube.personalization.userprofileaccess.stubs.service.UserProfileAccessFactoryServiceAddressingLocator;
|
|
||||||
import org.gcube.personalization.userprofileaccess.stubs.service.UserProfileAccessServiceAddressingLocator;
|
|
||||||
import org.gridforum.jgss.ExtendedGSSCredential;
|
|
||||||
import org.ietf.jgss.GSSCredential;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Valia Tsagkalidou (NKUA)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class ProfileService {
|
|
||||||
|
|
||||||
protected static AtomicInteger profileId = new AtomicInteger(0);
|
|
||||||
protected String username;
|
|
||||||
protected GCUBEScope scope;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The constructor
|
|
||||||
* @param username the user for each it will get the profile (Resource)
|
|
||||||
* @param scope the scope of the active VRE
|
|
||||||
*/
|
|
||||||
public ProfileService( String username, GCUBEScope scope) {
|
|
||||||
super();
|
|
||||||
this.username = username;
|
|
||||||
this.scope = scope;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return UserProfileAccessFactoryPortType
|
|
||||||
*/
|
|
||||||
public UserProfileAccessFactoryPortType getUserProfileAccessFactory()
|
|
||||||
{
|
|
||||||
EndpointReference[] profileURIs;
|
|
||||||
try {
|
|
||||||
profileURIs = RIsManager.getInstance().getISCache(scope).getEPRsFor("Personalisation", "UserProfileAccess", SrvType.FACTORY.name()); //.getEndPointForPersonalizationUPAFactoryService();
|
|
||||||
} catch (Exception e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("getUserProfileAccessFactory: " + profileURIs.length);
|
|
||||||
EndpointReferenceType serviceEPR = new EndpointReferenceType();
|
|
||||||
UserProfileAccessFactoryPortType upa = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
serviceEPR.setAddress(new Address(profileURIs[profileId.getAndIncrement()%profileURIs.length].getAddress().toString()));
|
|
||||||
UserProfileAccessFactoryServiceAddressingLocator upalocator = new UserProfileAccessFactoryServiceAddressingLocator();
|
|
||||||
upa = upalocator.getUserProfileAccessFactoryPortTypePort(serviceEPR);
|
|
||||||
return upa;
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param cred the X509 credential
|
|
||||||
* @return UserProfileAccessPortType
|
|
||||||
*/
|
|
||||||
public UserProfileAccessPortType getUserProfileAccess(ExtendedGSSCredential cred)
|
|
||||||
{
|
|
||||||
UserProfileAccessFactoryPortType upa = getUserProfileAccessFactory();
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
upa = (UserProfileAccessFactoryPortType) ServiceContextManager.applySecurity(upa, scope, cred);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
EndpointReferenceType epr = null;
|
|
||||||
try {
|
|
||||||
System.out.println("\n\n\n\n" + username + " scope= " + scope + "\n\n\n\n");
|
|
||||||
epr = upa.createResource(username);
|
|
||||||
} catch (GCUBEFault e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if(epr != null)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
return getUserProfileAccessServicePortType(epr, scope, cred);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param upa UserProfileAccessFactoryPortType
|
|
||||||
* @param cred an X509 credential
|
|
||||||
* @return UserProfileAccessPortType
|
|
||||||
*/
|
|
||||||
public UserProfileAccessPortType getUserProfileAccess(UserProfileAccessFactoryPortType upa, ExtendedGSSCredential cred)
|
|
||||||
{
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
upa = (UserProfileAccessFactoryPortType) ServiceContextManager.applySecurity(upa, scope, cred);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
EndpointReferenceType epr = null;
|
|
||||||
try {
|
|
||||||
epr = upa.createResource(username);
|
|
||||||
} catch (GCUBEFault e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if(epr != null)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
return getUserProfileAccessServicePortType(epr, scope, cred);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the port type of the service User Profile Access.
|
|
||||||
*
|
|
||||||
* @param epr the endpoint reference of a WS resource of this service
|
|
||||||
* @param scope the gCube scope
|
|
||||||
* @param cred a X509 credential
|
|
||||||
* @return port for UserProfileAccess service
|
|
||||||
* @throws RemoteException an exception
|
|
||||||
*/
|
|
||||||
private UserProfileAccessPortType getUserProfileAccessServicePortType(EndpointReferenceType epr,GCUBEScope scope, GSSCredential cred) throws RemoteException {
|
|
||||||
UserProfileAccessServiceAddressingLocator instanceLocator = new UserProfileAccessServiceAddressingLocator();
|
|
||||||
UserProfileAccessPortType port = null;
|
|
||||||
try {
|
|
||||||
port = instanceLocator.getUserProfileAccessPortTypePort(epr);
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
port = (UserProfileAccessPortType) ServiceContextManager.applySecurity(port, scope, cred);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RemoteException("A service exception was thrown. Failed to get the port type of the service user profile access");
|
|
||||||
}
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param cred the X509 credential
|
|
||||||
* @return a port type for profile admin service
|
|
||||||
*/
|
|
||||||
public ProfileAdministrationPortType getProfileAdministration(GSSCredential cred)
|
|
||||||
{
|
|
||||||
EndpointReference[] profileURIs;
|
|
||||||
try {
|
|
||||||
profileURIs = RIsManager.getInstance().getISCache(scope).getEPRsFor("Personalisation", "ProfileAdministration", SrvType.SIMPLE.name()); //.getEndPointForPersonalizationPAService();
|
|
||||||
} catch (Exception e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
EndpointReferenceType serviceEPR = new EndpointReferenceType();
|
|
||||||
ProfileAdministrationPortType pa = null;
|
|
||||||
System.out.println("profile administration services: " + profileURIs.length);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
serviceEPR.setAddress(new Address(profileURIs[profileId.getAndIncrement()%profileURIs.length].getAddress().toString()));
|
|
||||||
ProfileAdministrationServiceAddressingLocator palocator = new ProfileAdministrationServiceAddressingLocator();
|
|
||||||
pa = palocator.getProfileAdministrationPortTypePort(serviceEPR);
|
|
||||||
pa = (ProfileAdministrationPortType) ServiceContextManager.applySecurity(pa, scope, cred);
|
|
||||||
return pa;
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue