/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: AuthConfigurationEntry.java,v 1.4 2008/06/25 05:41:52 qcheng Exp $ * */ package com.sun.identity.authentication.config; import com.sun.identity.shared.debug.Debug; import java.io.Serializable; import org.w3c.dom.Node; /** * Represents one Authentication Configuration Entry */ public class AuthConfigurationEntry implements Serializable { private static Debug debug = Debug.getInstance("amAuthConfig"); private String module = null; private String flag = null; private String options = null; /** * Constructor. * * @param module Login Module class name example * com.sun.identity.authentication.modules.ldap.LDAP * @param flag Control flag, one of * REQUIRED, OPTIONAL, REQUISITE, SUFFICIENT * @param options Options as space separated string. * @throws AMConfigurationException if module or flag is null or flag is * invalid. */ public AuthConfigurationEntry(String module, String flag, String options) throws AMConfigurationException { checkModule(module); checkFlag(flag); this.module = module; this.flag = flag; this.options = options; } /** * Constructor. */ protected AuthConfigurationEntry(Node node) throws AMConfigurationException { if (debug.messageEnabled()) { debug.message("AuthConfigEntry, value=" + node.toString()); } String value = node.getFirstChild().getNodeValue(); if (value == null || value.length() == 0) { debug.error("AuthConfigEntry, invalid value=" + value); throw new AMConfigurationException( AMAuthConfigUtils.bundleName, "invalidConfig"); } value = value.trim(); int pos = value.indexOf(" "); if (pos == -1) { debug.error("AuthConfigEntry, invalid value=" + value); throw new AMConfigurationException( AMAuthConfigUtils.bundleName, "invalidConfig"); } // set module this.module = value.substring(0, pos); value = value.substring(pos + 1).trim(); pos = value.indexOf(" "); if (pos == -1) { // no options this.flag = value; } else { this.flag = value.substring(0, pos); this.options = value.substring(pos + 1).trim(); } checkFlag(this.flag); } /** * Returns string representation of this object. * * @return string representation of this object. */ public String toString() { if (options == null) { return module + " " + flag; } else { return module + " " + flag + " " + options; } } /** * Returns login module name * @return login module name */ public String getLoginModuleName() { return module; } /** * Sets login module name * * @param moduleName module name. * @throws AMConfigurationException if module is null. */ public void setLoginModuleName(String moduleName) throws AMConfigurationException { checkModule(moduleName); module = moduleName; } /** * Returns control flag . * * @return control flag . */ public String getControlFlag() { return flag; } /** * Sets control flag. * * @param flag control flag * @throws AMConfigurationException if flag is null or invalid. */ public void setControlFlag(String flag) throws AMConfigurationException { checkFlag(flag); this.flag = flag; } /** * Returns options. * * @return options. */ public String getOptions() { return options; } /** * Sets options. * @param options */ public void setOptions(String options) { this.options = options; } private void checkModule(String module) throws AMConfigurationException { if (module == null || module.length() == 0) { throw new AMConfigurationException( AMAuthConfigUtils.bundleName, "invalidConfig"); } } private void checkFlag(String flag) throws AMConfigurationException{ if (flag == null || flag.length() == 0) { throw new AMConfigurationException( AMAuthConfigUtils.bundleName, "invalidConfig"); } if (!flag.equalsIgnoreCase("REQUIRED") && !flag.equalsIgnoreCase("OPTIONAL") && !flag.equalsIgnoreCase("REQUISITE") && !flag.equalsIgnoreCase("SUFFICIENT")) { debug.warning("AuthConfigEntry, invalid flag : " + flag); throw new AMConfigurationException( AMAuthConfigUtils.bundleName, "invalidConfig"); } } }