All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gridforum.jgss.ExtendedGSSManager 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.gridforum.jgss;

import org.ietf.jgss.GSSManager;
import org.ietf.jgss.Oid;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;

/**
 * Defines Java API for credential import extension as defined in the 
 * GSS-API Extensions document.
 * Some of the functions might not specify all the parameters as in the document. 
 * 

Notes: *
    *
  • Protection key is currently not supported.
  • *
*/ public abstract class ExtendedGSSManager extends GSSManager { private static ExtendedGSSManager gssManager; protected ExtendedGSSManager() {} /** * A factory method for creating a previously exported credential. * * @param buff * The token emitted from the {@link ExtendedGSSCredential#export(int, Oid) * ExtendedGSSCredential.export} method. * @param option * The import type. The import type must be the same as the * option used to export the buffer. * @param lifetime * The number of seconds that credentials should remain valid. Use * GSSCredential.INDEFINITE_LIFETIME to request that the credentials have * the maximum permitted lifetime. Use GSSCredential.DEFAULT_LIFETIME to request * default credential lifetime. * @param mech * The desired mechanism for the imported credential, may be null to indicate system default. * @param usage * The intended usage for this credential object. The value of this parameter must be one of: * GSSCredential.INITIATE_AND_ACCEPT, GSSCredential.ACCEPT_ONLY, and GSSCredential.INITIATE_ONLY. * @exception GSSException containing the following major error codes: GSSException.BAD_MECH, * GSSException.DEFECTIVE_TOKEN, GSSException.NO_CRED, GSSException.CREDENTIAL_EXPIRED, * GSSException.FAILURE */ public abstract GSSCredential createCredential (byte[] buff, int option, int lifetime, Oid mech, int usage) throws GSSException; public synchronized static GSSManager getInstance() { if (gssManager == null) { String className = System.getProperty("org.globus.gsi.gssapi.provider"); if (className == null) { className = "org.globus.gsi.gssapi.GlobusGSSManagerImpl"; } try { Class clazz = Class.forName(className); if (!ExtendedGSSManager.class.isAssignableFrom(clazz)) { throw new RuntimeException("Invalid ExtendedGSSManager provider class: '" + className + "'"); } gssManager = (ExtendedGSSManager)clazz.newInstance(); } catch (ClassNotFoundException e) { throw new RuntimeException("Unable to load '" + className + "' class: " + e.getMessage()); } catch (InstantiationException e) { throw new RuntimeException("Unable to instantiate '" + className + "' class: " + e.getMessage()); } catch (IllegalAccessException e) { throw new RuntimeException("Unable to instantiate '" + className + "' class: " + e.getMessage()); } } return gssManager; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy