001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2014-2015 ForgeRock AS.
015 */
016
017package org.forgerock.openig.alias;
018
019import java.security.KeyStore;
020import java.util.HashMap;
021import java.util.Map;
022
023import javax.net.ssl.KeyManager;
024import javax.net.ssl.TrustManager;
025
026import org.forgerock.openig.audit.monitor.MonitorEndpointHandler;
027import org.forgerock.openig.decoration.baseuri.BaseUriDecorator;
028import org.forgerock.openig.decoration.capture.CaptureDecorator;
029import org.forgerock.openig.decoration.timer.TimerDecorator;
030import org.forgerock.openig.filter.AssignmentFilter;
031import org.forgerock.openig.filter.Chain;
032import org.forgerock.openig.filter.CookieFilter;
033import org.forgerock.openig.filter.CryptoHeaderFilter;
034import org.forgerock.openig.filter.EntityExtractFilter;
035import org.forgerock.openig.filter.FileAttributesFilter;
036import org.forgerock.openig.filter.HeaderFilter;
037import org.forgerock.openig.filter.HttpBasicAuthFilter;
038import org.forgerock.openig.filter.LocationHeaderFilter;
039import org.forgerock.openig.filter.PasswordReplayFilter;
040import org.forgerock.openig.filter.ScriptableFilter;
041import org.forgerock.openig.filter.SqlAttributesFilter;
042import org.forgerock.openig.filter.StaticRequestFilter;
043import org.forgerock.openig.filter.SwitchFilter;
044import org.forgerock.openig.filter.ThrottlingFilter;
045import org.forgerock.openig.handler.ClientHandler;
046import org.forgerock.openig.handler.DesKeyGenHandler;
047import org.forgerock.openig.handler.DispatchHandler;
048import org.forgerock.openig.handler.ScriptableHandler;
049import org.forgerock.openig.handler.SequenceHandler;
050import org.forgerock.openig.handler.StaticResponseHandler;
051import org.forgerock.openig.handler.WelcomeHandler;
052import org.forgerock.openig.handler.router.AuditServiceObject;
053import org.forgerock.openig.handler.router.RouterHandler;
054import org.forgerock.openig.io.TemporaryStorage;
055import org.forgerock.openig.jwt.JwtSessionManager;
056import org.forgerock.openig.log.ConsoleLogSink;
057import org.forgerock.openig.log.FileLogSink;
058import org.forgerock.openig.log.NullLogSink;
059import org.forgerock.openig.security.TrustAllManager;
060
061/**
062 * Register all the aliases supported by the {@literal openig-core} module.
063 */
064public class CoreClassAliasResolver implements ClassAliasResolver {
065    private static final Map<String, Class<?>> ALIASES = new HashMap<>();
066
067    static {
068        ALIASES.put("AuditService", AuditServiceObject.class);
069        ALIASES.put("AssignmentFilter", AssignmentFilter.class);
070        ALIASES.put("BaseUriDecorator", BaseUriDecorator.class);
071        ALIASES.put("CaptureDecorator", CaptureDecorator.class);
072        ALIASES.put("Chain", Chain.class);
073        ALIASES.put("ClientHandler", ClientHandler.class);
074        ALIASES.put("ConsoleLogSink", ConsoleLogSink.class);
075        ALIASES.put("CookieFilter", CookieFilter.class);
076        ALIASES.put("CryptoHeaderFilter", CryptoHeaderFilter.class);
077        ALIASES.put("DesKeyGenHandler", DesKeyGenHandler.class);
078        ALIASES.put("DispatchHandler", DispatchHandler.class);
079        ALIASES.put("EntityExtractFilter", EntityExtractFilter.class);
080        ALIASES.put("FileAttributesFilter", FileAttributesFilter.class);
081        ALIASES.put("FileLogSink", FileLogSink.class);
082        ALIASES.put("HeaderFilter", HeaderFilter.class);
083        ALIASES.put("HttpBasicAuthFilter", HttpBasicAuthFilter.class);
084        ALIASES.put("JwtSessionFactory", JwtSessionManager.class);
085        ALIASES.put("JwtSession", JwtSessionManager.class);
086        ALIASES.put("KeyManager", KeyManager.class);
087        ALIASES.put("KeyStore", KeyStore.class);
088        ALIASES.put("LocationHeaderFilter", LocationHeaderFilter.class);
089        ALIASES.put("MonitorEndpointHandler", MonitorEndpointHandler.class);
090        ALIASES.put("NullLogSink", NullLogSink.class);
091        ALIASES.put("PasswordReplayFilter", PasswordReplayFilter.class);
092        ALIASES.put("RedirectFilter", LocationHeaderFilter.class);
093        ALIASES.put("Router", RouterHandler.class);
094        ALIASES.put("RouterHandler", RouterHandler.class);
095        ALIASES.put("ScriptableFilter", ScriptableFilter.class);
096        ALIASES.put("ScriptableHandler", ScriptableHandler.class);
097        ALIASES.put("SequenceHandler", SequenceHandler.class);
098        ALIASES.put("SqlAttributesFilter", SqlAttributesFilter.class);
099        ALIASES.put("StaticRequestFilter", StaticRequestFilter.class);
100        ALIASES.put("StaticResponseHandler", StaticResponseHandler.class);
101        ALIASES.put("SwitchFilter", SwitchFilter.class);
102        ALIASES.put("TemporaryStorage", TemporaryStorage.class);
103        ALIASES.put("ThrottlingFilter", ThrottlingFilter.class);
104        ALIASES.put("TimerDecorator", TimerDecorator.class);
105        ALIASES.put("TrustManager", TrustManager.class);
106        ALIASES.put("TrustAllManager", TrustAllManager.class);
107        ALIASES.put("WelcomeHandler", WelcomeHandler.class);
108    }
109
110    @Override
111    public Class<?> resolve(final String alias) {
112        return ALIASES.get(alias);
113    }
114}