package org.cagrid.cds.service.impl.delegatedcredential;
import org.cagrid.cds.model.CertificateChain;
import org.cagrid.cds.model.DelegationIdentifier;
import org.cagrid.cds.model.PublicKey;
import org.cagrid.cds.service.exception.CDSInternalException;
import org.cagrid.cds.service.exception.DelegationException;
import org.cagrid.cds.service.exception.PermissionDeniedException;
import org.cagrid.cds.service.impl.manager.DelegationManager;
import org.cagrid.wsrf.properties.RemoveCallback;
import org.cagrid.wsrf.properties.Resource;
import org.cagrid.wsrf.properties.ResourceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DelegatedCredentialResource implements Resource, RemoveCallback {
private DelegationManager cds;
private DelegationIdentifier id;
private final Logger log;
public DelegatedCredentialResource(DelegationManager cds,
DelegationIdentifier id) {
this.cds = cds;
this.id = id;
this.log = LoggerFactory.getLogger(this.getClass().getName());
}
public CertificateChain getDelegatedCredential(String callerGridIdentity, PublicKey publicKey) throws DelegationException, PermissionDeniedException, CDSInternalException {
return this.cds.getDelegatedCredential(callerGridIdentity, id, publicKey);
}
@Override
public void remove() throws ResourceException {
//TODO, don't have grid identity here
log.error("********************Don't know how to remove yet*******************");
throw new ResourceException("********************Don't know how to remove yet*******************");
// try {
// this.cds.suspendDelegatedCredential(callerGridIdentity, id);
// } catch (Exception e) {
// e.printStackTrace();
// throw new ResourceException(Utils.getExceptionMessage(e), e);
// }
}
}