EnumAuthMethod.java revision c9d44c649b67bea43e7549e2bf52870db9e770d0
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk/*
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * CDDL HEADER START
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The contents of this file are subject to the terms of the
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Common Development and Distribution License, Version 1.0 only
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * (the "License"). You may not use this file except in compliance
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * with the License.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * You can obtain a copy of the license at
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * trunk/opends/resource/legal-notices/OpenDS.LICENSE
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * See the License for the specific language governing permissions
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * and limitations under the License.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * When distributing Covered Code, include this CDDL HEADER in each
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * file and include the License file at
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * add the following below this CDDL HEADER, with the fields enclosed
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * by brackets "[]" replaced with your own identifying * information:
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Portions Copyright [yyyy] [name of copyright owner]
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * CDDL HEADER END
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Portions Copyright 2007 Sun Microsystems, Inc.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkpackage org.opends.server.authorization.dseecompat;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk/*
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * TODO Evaluate moving this to a non-enumeration class that can add
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * SASL mechanisms dynamically.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk *
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Given our previous discussion about needing to support any kind of SASL
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * mechanism that may be registered with the server, perhaps an enum isn't
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * the right way to handle this because we don't know ahead of time what
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * auth methods might be available (certainly not at compile time, but
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * potentially not even at runtime since I can add support for a new SASL
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * mechanism on the fly without restarting the server).
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk/**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * This class provides an enumeration of the allowed authmethod types.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkpublic enum EnumAuthMethod {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * none.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_NONE ("none"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * simple.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_SIMPLE ("simple"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * ssl client auth.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_SSL ("ssl"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * sasl DIGEST-MD5.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_SASL_MD5 ("sasl DIGEST-MD5"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * sasl EXTERNAL.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_SASL_EXTERNAL ("sasl EXTERNAL"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The enumeration type when the bind rule has specified authentication of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * sasl GSSAPI.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_SASL_GSSAPI ("sasl GSSAPI"),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Special internal enumeration for when there is no match.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk AUTHMETHOD_NOMATCH ("nomatch");
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * The name of the authmethod.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public String authmethod = null;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Creates a new enumeration type for this authmethod.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * @param authmethod The authemethod name.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk EnumAuthMethod (String authmethod){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk this.authmethod = authmethod;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Checks if a authmethod name is equal to this enumeration.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * @param myauthmethod The name to test for.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * @return True if the names match.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public boolean isAuthMethod(String myauthmethod){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk return myauthmethod.equalsIgnoreCase(this.authmethod);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /**
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Creates an authmethod enumeration from the name passed in.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * @param myauthmethod The name to create.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * @return An authmethod enumeration if the name was found or null if not.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public static EnumAuthMethod createAuthmethod(String myauthmethod){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk if (myauthmethod != null){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk for (EnumAuthMethod t : EnumAuthMethod.values()){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk if (t.isAuthMethod(myauthmethod)){
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk return t;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk return null;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk }
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk}
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk