Rena Tsantouli 2012-05-07 16:22:24 +00:00
parent 72dae40b77
commit b5bda0c2a9
1 changed files with 68 additions and 67 deletions

View File

@ -2,15 +2,15 @@ package org.gcube.application.framework.core.cache.factories;
import java.util.HashMap; import java.util.HashMap;
import org.gcube.application.framework.core.security.PortalSecurityManager; //import org.gcube.application.framework.core.security.PortalSecurityManager;
import org.gcube.application.framework.core.security.VOMSAdminManager; //import org.gcube.application.framework.core.security.VOMSAdminManager;
import org.gcube.application.framework.core.util.UserCredential; //import org.gcube.application.framework.core.util.UserCredential;
import org.gcube.common.core.scope.GCUBEScope; //import org.gcube.common.core.scope.GCUBEScope;
import org.gcube.common.core.security.utils.VOMSAttributesReader; //import org.gcube.common.core.security.utils.VOMSAttributesReader;
import org.gcube.common.core.utils.logging.GCUBELog; import org.gcube.common.core.utils.logging.GCUBELog;
import org.gcube.vomanagement.vomsapi.VOMSAdmin; //import org.gcube.vomanagement.vomsapi.VOMSAdmin;
import org.gcube.vomanagement.vomsapi.impl.VOMSAPIFactory; //import org.gcube.vomanagement.vomsapi.impl.VOMSAPIFactory;
import org.glite.wsdl.services.org_glite_security_voms.User; //import org.glite.wsdl.services.org_glite_security_voms.User;
import org.gridforum.jgss.ExtendedGSSCredential; import org.gridforum.jgss.ExtendedGSSCredential;
/** /**
@ -50,64 +50,65 @@ public class ApplicationCredentials {
*/ */
public ExtendedGSSCredential getCredential(String VREname) public ExtendedGSSCredential getCredential(String VREname)
{ {
PortalSecurityManager secMan = new PortalSecurityManager(GCUBEScope.getScope(VREname)); // PortalSecurityManager secMan = new PortalSecurityManager(GCUBEScope.getScope(VREname));
if(!secMan.isSecurityEnabled()) // if(!secMan.isSecurityEnabled())
return null; // return null;
ExtendedGSSCredential cred = creds.get(VREname); // ExtendedGSSCredential cred = creds.get(VREname);
if(cred == null) // if(cred == null)
{ // {
// If the credential is not available, it retrieves it from myProxy // // If the credential is not available, it retrieves it from myProxy
cred = UserCredential.getCredential("application", VREname); // cred = UserCredential.getCredential("application", VREname);
if(cred == null) // if(cred == null)
{ // {
//user "application" does not exist on this VRE, so we add him and try to get credential again // //user "application" does not exist on this VRE, so we add him and try to get credential again
VOMSAdmin vomsA; // VOMSAdmin vomsA;
VOMSAPIFactory factory; // VOMSAPIFactory factory;
try { // try {
factory = VOMSAdminManager.getVOMSFactory(); // factory = VOMSAdminManager.getVOMSFactory();
vomsA = factory.getVOMSAdmin(); // vomsA = factory.getVOMSAdmin();
// String[] roles = vomsA.listRoles(); // // String[] roles = vomsA.listRoles();
// vomsA.createUser("application", userDN+"application", userCA, "application@gcube.org"); // // vomsA.createUser("application", userDN+"application", userCA, "application@gcube.org");
// vomsA.addMember(VREname, userDN+"application", userCA); // // vomsA.addMember(VREname, userDN+"application", userCA);
// vomsA.assignRole(VREname, roles[0], userDN+"application", userCA); // // vomsA.assignRole(VREname, roles[0], userDN+"application", userCA);
// vomsA = new VOMSAdminImpl(); // // vomsA = new VOMSAdminImpl();
String[] roles = vomsA.listRoles(); // String[] roles = vomsA.listRoles();
User myUser = new User(); // User myUser = new User();
myUser.setCN("application"); // myUser.setCN("application");
myUser.setDN(userDN+"application"); // myUser.setDN(userDN+"application");
myUser.setCA(userCA); // myUser.setCA(userCA);
myUser.setMail("application@gcube.org"); // myUser.setMail("application@gcube.org");
//vomsA.getExtendedPortType().createUser("application", userDN+"application", userCA, "application@gcube.org"); // //vomsA.getExtendedPortType().createUser("application", userDN+"application", userCA, "application@gcube.org");
vomsA.createUser(myUser); // vomsA.createUser(myUser);
//vomsA.getExtendedPortType().addOnlineCAMember(VREname, userDN+"application"); // //vomsA.getExtendedPortType().addOnlineCAMember(VREname, userDN+"application");
//vomsA.getExtendedPortType().assignOnlineCARole(VREname, roles[0], userDN+"application"); // //vomsA.getExtendedPortType().assignOnlineCARole(VREname, roles[0], userDN+"application");
vomsA.addMember(VREname, userDN + "application", userCA); // vomsA.addMember(VREname, userDN + "application", userCA);
vomsA.assignRole(VREname, roles[0], userDN + "application", userCA); // vomsA.assignRole(VREname, roles[0], userDN + "application", userCA);
} // }
catch (Exception e) { // catch (Exception e) {
vomsA = null; // vomsA = null;
logger.error("", e); // logger.error("", e);
} // }
cred = UserCredential.getCredential("application", VREname); // cred = UserCredential.getCredential("application", VREname);
} // }
creds.put(VREname, cred); // creds.put(VREname, cred);
} // }
else // else
{ // {
// credential already available // // credential already available
VOMSAttributesReader vomsReader = null; // VOMSAttributesReader vomsReader = null;
try { // try {
vomsReader = new VOMSAttributesReader(cred); // vomsReader = new VOMSAttributesReader(cred);
//Check if it's gonna expire in the next minute, and refresh it // //Check if it's gonna expire in the next minute, and refresh it
if(vomsReader.getRefreshPeriod() < 60000) // if(vomsReader.getRefreshPeriod() < 60000)
{ // {
cred = UserCredential.getCredential("application", VREname); // cred = UserCredential.getCredential("application", VREname);
creds.put(VREname, cred); // creds.put(VREname, cred);
} // }
} catch (Exception e1) { // } catch (Exception e1) {
logger.error("", e1); // logger.error("", e1);
} // }
} // }
return cred; // return cred;
return null;
} }
} }