/* * @(#)AppConfigurationEntry.java 1.34 04/05/05 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.security.auth.login; import java.util.Map; import java.util.Collections; /** * This class represents a single LoginModule entry * configured for the application specified in the * getAppConfigurationEntry(String appName) * method in the Configuration class. Each respective * AppConfigurationEntry contains a LoginModule name, * a control flag (specifying whether this LoginModule is * REQUIRED, REQUISITE, SUFFICIENT, or OPTIONAL), and LoginModule-specific * options. Please refer to the Configuration class for * more information on the different control flags and their semantics. * * @version 1.34, 05/05/04 * @see javax.security.auth.login.Configuration */ public class AppConfigurationEntry { private String loginModuleName; private LoginModuleControlFlag controlFlag; private Map options; /** * Default constructor for this class. * *

This entry represents a single LoginModule * entry configured for the application specified in the * getAppConfigurationEntry(String appName) * method from the Configuration class. * * @param loginModuleName String representing the class name of the * LoginModule configured for the * specified application.

* * @param controlFlag either REQUIRED, REQUISITE, SUFFICIENT, * or OPTIONAL.

* * @param options the options configured for this LoginModule. * * @exception IllegalArgumentException if loginModuleName * is null, if LoginModuleName * has a length of 0, if controlFlag * is not either REQUIRED, REQUISITE, SUFFICIENT * or OPTIONAL, or if options is null. */ public AppConfigurationEntry(String loginModuleName, LoginModuleControlFlag controlFlag, Map options) { if (loginModuleName == null || loginModuleName.length() == 0 || (controlFlag != LoginModuleControlFlag.REQUIRED && controlFlag != LoginModuleControlFlag.REQUISITE && controlFlag != LoginModuleControlFlag.SUFFICIENT && controlFlag != LoginModuleControlFlag.OPTIONAL) || options == null) throw new IllegalArgumentException(); this.loginModuleName = loginModuleName; this.controlFlag = controlFlag; this.options = Collections.unmodifiableMap(options); } /** * Get the class name of the configured LoginModule. * * @return the class name of the configured LoginModule as * a String. */ public String getLoginModuleName() { return loginModuleName; } /** * Return the controlFlag * (either REQUIRED, REQUISITE, SUFFICIENT, or OPTIONAL) * for this LoginModule. * * @return the controlFlag * (either REQUIRED, REQUISITE, SUFFICIENT, or OPTIONAL) * for this LoginModule. */ public LoginModuleControlFlag getControlFlag() { return controlFlag; } /** * Get the options configured for this LoginModule. * * @return the options configured for this LoginModule * as an unmodifiable Map. */ public Map getOptions() { return options; } /** * This class represents whether or not a LoginModule * is REQUIRED, REQUISITE, SUFFICIENT or OPTIONAL. */ public static class LoginModuleControlFlag { private String controlFlag; /** * Required LoginModule. */ public static final LoginModuleControlFlag REQUIRED = new LoginModuleControlFlag("required"); /** * Requisite LoginModule. */ public static final LoginModuleControlFlag REQUISITE = new LoginModuleControlFlag("requisite"); /** * Sufficient LoginModule. */ public static final LoginModuleControlFlag SUFFICIENT = new LoginModuleControlFlag("sufficient"); /** * Optional LoginModule. */ public static final LoginModuleControlFlag OPTIONAL = new LoginModuleControlFlag("optional"); private LoginModuleControlFlag(String controlFlag) { this.controlFlag = controlFlag; } /** * Return a String representation of this controlFlag. * * @return a String representation of this controlFlag. */ public String toString() { return (sun.security.util.ResourcesMgr.getString ("LoginModuleControlFlag: ") + controlFlag); } } }