package grith.jgrith.cred; import grisu.jcommons.constants.Constants; import grisu.jcommons.exceptions.CredentialException; import grisu.model.info.dto.VO; import grith.jgrith.utils.CredentialHelpers; import grith.jgrith.vomsProxy.VomsProxy; import java.util.Map; import org.ietf.jgss.GSSCredential; public class GroupCred extends AbstractCred { private AbstractCred baseCred; private final VO vo; private final String group; public GroupCred(AbstractCred cred) { super(); this.baseCred = cred; this.vo = VO.NON_VO; this.group = Constants.NON_VO_FQAN; } public GroupCred(AbstractCred cred, VO vo, String group) { super(); this.baseCred = cred; this.vo = vo; this.group = group; init(); } @Override public GSSCredential createGSSCredentialInstance() { try { VomsProxy vp = new VomsProxy(vo, group, CredentialHelpers.unwrapGlobusCredential(baseCred .getGSSCredential()), new Long( baseCred.getRemainingLifetime()) * 1000); return CredentialHelpers.wrapGlobusCredential(vp .getVomsProxyCredential()); } catch (Exception e) { throw new CredentialException("Can't create VOMS credential: " + e.getLocalizedMessage(), e); } } @Override protected void initCred(Map<PROPERTY, Object> config) { // nothing to do here myLogger.debug("No init in GroupCred"); // baseCred.init(config); } protected String getGroup() { return group; } @Override public boolean isRenewable() { return false; } public void setBaseCred(AbstractCred cred) { this.baseCred = cred; refresh(); } // @Override // public String saveProxy() { // // do nothing, it's already saved // return this.localPath; // } // // @Override // public String saveProxy(String path) { // // // do nothing, it's already saved // if ( isUploaded() ) { // saveMyProxy(path); // } // // return this.localPath; // // } }