IDMAuthModule.java revision ac3d0527956d93d93c68e3cd2d70d15ee1e654f6
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/*
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * The contents of this file are subject to the terms of the Common Development and
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Distribution License (the License). You may not use this file except in compliance with the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * License.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * specific language governing permission and limitations under the License.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * When distributing Covered Software, include this CDDL Header Notice in each file and include
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Header, with the fields enclosed by brackets [] replaced by your own identifying
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * information: "Portions copyright [year] [name of copyright owner]".
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Copyright 2013-2015 ForgeRock AS.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncpackage org.forgerock.openidm.auth.modules;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.caf.authentication.api.AsyncServerAuthModule;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.jaspi.modules.iwa.IWAModule;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.jaspi.modules.openid.OpenIdConnectModule;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.jaspi.modules.session.jwt.JwtSessionModule;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.jaspi.modules.session.openam.OpenAMSessionModule;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.openidm.auth.Authenticator;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncimport org.forgerock.openidm.auth.AuthenticatorFactory;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/**
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Enum that represents all the core IDM Authentication modules.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncpublic enum IDMAuthModule {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /** JWT Session Auth Module. */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync JWT_SESSION {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync @Override
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return new JwtSessionModule();
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync },
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /** OpenAM Session Auth Module. */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync OPENAM_SESSION {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync @Override
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return new OpenAMSessionModule();
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync },
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /** Client-cert Auth Module. */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CLIENT_CERT {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync @Override
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return new ClientCertAuthModule();
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync },
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /** Delegated auth module using an {@link Authenticator} */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync DELEGATED {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync @Override
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return new DelegatedAuthModule(authenticatorFactory);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync },
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /** Managed User Auth Module. */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync MANAGED_USER {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync @Override
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return DELEGATED.newInstance(authenticatorFactory);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync },
/** Internal User Auth Module. */
INTERNAL_USER {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return DELEGATED.newInstance(authenticatorFactory);
}
},
/** Static User Auth Module. */
STATIC_USER {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return DELEGATED.newInstance(authenticatorFactory);
}
},
/** Passthrough to OpenICF connector Auth Module. */
PASSTHROUGH {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return DELEGATED.newInstance(authenticatorFactory);
}
},
/** IWA Auth Module. */
IWA {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return new IWAModule();
}
},
/** OpenID Connect Auth Module. */
OPENID_CONNECT {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return new OpenIdConnectModule();
}
},
/** Trusted Request Attribute Auth Module. */
TRUSTED_ATTRIBUTE {
@Override
public AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory) {
return new TrustedRequestAttributeAuthModule();
}
};
public abstract AsyncServerAuthModule newInstance(AuthenticatorFactory authenticatorFactory);
}