
org.globus.net.GSIURLConnection Maven / Gradle / Ivy
The newest version!
/*
* 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.net;
import java.net.URL;
import java.net.URLConnection;
import org.globus.gsi.GSIConstants;
import org.globus.gsi.gssapi.auth.Authorization;
import org.globus.gsi.gssapi.auth.GSSAuthorization;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSName;
import org.ietf.jgss.GSSException;
public abstract class GSIURLConnection extends URLConnection {
public static final String GSS_MODE_PROPERTY =
"gssMode";
protected GSSCredential credentials;
protected Authorization authorization;
protected int delegationType;
protected Integer gssMode;
/**
* Subclasses must overwrite.
*/
protected GSIURLConnection(URL url) {
super(url);
this.delegationType = GSIConstants.DELEGATION_NONE;
this.authorization = null; // no authorization?
}
public abstract void disconnect();
public void setGSSMode(Integer mode) {
this.gssMode = mode;
}
public Integer getGSSMode() {
return this.gssMode;
}
public void setCredentials(GSSCredential credentials) {
this.credentials = credentials;
}
public GSSCredential getCredentials() {
return credentials;
}
public void setAuthorization(Authorization auth) {
authorization = auth;
}
public Authorization getAuthorization() {
return authorization;
}
public void setDelegationType(int delegationType) {
this.delegationType = delegationType;
}
public int getDelegationType() {
return delegationType;
}
protected GSSName getExpectedName() throws GSSException {
if (this.authorization instanceof GSSAuthorization) {
GSSAuthorization auth = (GSSAuthorization)this.authorization;
return auth.getExpectedName(this.credentials,
this.url.getHost());
} else {
return null;
}
}
public void setRequestProperty(String key, String value) {
if (key.equals(GSS_MODE_PROPERTY)) {
if (value.equals("ssl")) {
setGSSMode(GSIConstants.MODE_SSL);
} else if (value.equals("gsi")) {
setGSSMode(GSIConstants.MODE_GSI);
} else {
setGSSMode(null);
}
} else {
super.setRequestProperty(key, value);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy