org.globus.gsi.stores.ResourceProxyCredential Maven / Gradle / Ivy
/*
* Copyright 1999-2010 University of Chicago
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
*
* See the License for the specific language governing permissions and limitations under the License.
*/
package org.globus.gsi.stores;
import org.globus.gsi.CredentialException;
import org.globus.gsi.X509Credential;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.cert.CertificateEncodingException;
import org.globus.util.GlobusResource;
/**
* JGLOBUS-87 : document me
*
* @author Tom Howe
*/
public class ResourceProxyCredential extends AbstractResourceSecurityWrapper
implements CredentialWrapper {
private Log logger = LogFactory.getLog(getClass().getCanonicalName());
public ResourceProxyCredential(String locationPattern) throws ResourceStoreException {
super(false);
init(locationPattern);
}
public ResourceProxyCredential(GlobusResource globusResource) throws ResourceStoreException {
super(false);
init(globusResource);
}
public ResourceProxyCredential(String filename, X509Credential object) throws ResourceStoreException {
super(false);
init(filename, object);
}
public ResourceProxyCredential(boolean inMemory, GlobusResource globusResource, X509Credential object) throws ResourceStoreException {
super(inMemory);
init(globusResource, object);
}
public X509Credential getCredential() throws ResourceStoreException {
return getSecurityObject();
}
protected X509Credential create(GlobusResource globusResource) throws ResourceStoreException {
InputStream keyInputStream = null;
InputStream certInputStream = null;
try {
keyInputStream = new BufferedInputStream(globusResource.getInputStream());
certInputStream = new BufferedInputStream(globusResource.getInputStream());
return new X509Credential(keyInputStream, certInputStream);
} catch (IOException e) {
throw new ResourceStoreException(e);
} catch (CredentialException e) {
throw new ResourceStoreException(e);
} finally {
if (keyInputStream != null) {
try {
keyInputStream.close();
} catch (Exception e) {
logger.warn("Unable to close stream.");
}
}
if (certInputStream != null) {
try {
certInputStream.close();
} catch (Exception e) {
logger.warn("Unable to close stream.");
}
}
}
}
public void store() throws ResourceStoreException {
try {
X509Credential credential = getCredential();
credential.writeToFile(globusResource.getFile());
} catch (IOException ioe) {
throw new ResourceStoreException(ioe);
} catch (CertificateEncodingException e) {
throw new ResourceStoreException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy