blob: fb5f00d3453aca143b9f3e96d4be4e8105c911d7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.security.auth.module;
import java.util.Map;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginException;
import javax.security.auth.spi.LoginModule;
import org.eclipse.equinox.internal.security.auth.ext.loader.ExtLoginModuleLoader;
/**
* This class allows login modules specified via <code>loginModule</code> extension point
* to be included in the login configurations.
* <p>
* To include your login module in a login configuration, specify this class as a login module
* using its qualified Java name. Options specified for such entry should contain an option named
* <code>extensionId</code> set to the qualified ID of the extension describing your login module.
* </p><p>
* This class should not be extended or instantiated directly.
* </p>
* @noinstantiate This class is not intended to be instantiated by clients.
*/
final public class ExtensionLoginModule implements LoginModule {
/**
* The key for the option that specifies an extension describing the actual login module
*/
static final public String OPTION_MODULE_POINT = "extensionId"; //$NON-NLS-1$
private LoginModule target = null;
/**
* Constructor
*/
public ExtensionLoginModule() {
// place holder
}
/* (non-Javadoc)
* @see javax.security.auth.spi.LoginModule#initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map, java.util.Map)
*/
public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
target = ExtLoginModuleLoader.load(options);
target.initialize(subject, callbackHandler, sharedState, options);
}
/* (non-Javadoc)
* @see javax.security.auth.spi.LoginModule#login()
*/
public boolean login() throws LoginException {
return target.login();
}
/* (non-Javadoc)
* @see javax.security.auth.spi.LoginModule#commit()
*/
public boolean commit() throws LoginException {
return target.commit();
}
/* (non-Javadoc)
* @see javax.security.auth.spi.LoginModule#abort()
*/
public boolean abort() throws LoginException {
return target.abort();
}
/* (non-Javadoc)
* @see javax.security.auth.spi.LoginModule#logout()
*/
public boolean logout() throws LoginException {
return target.logout();
}
}