All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mule.module.oauth2.internal.config.OAuth2NamespaceHandler Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 * The software in this package is published under the terms of the CPAL v1.0
 * license, a copy of which has been included with this distribution in the
 * LICENSE.txt file.
 */
package org.mule.module.oauth2.internal.config;


import org.mule.config.spring.handlers.MuleNamespaceHandler;
import org.mule.config.spring.parsers.collection.GenericChildMapDefinitionParser;
import org.mule.config.spring.parsers.delegate.ParentContextDefinitionParser;
import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
import org.mule.config.spring.parsers.generic.MuleOrphanDefinitionParser;
import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
import org.mule.module.oauth2.internal.ParameterExtractor;
import org.mule.module.oauth2.internal.authorizationcode.AuthorizationRequestHandler;
import org.mule.module.oauth2.internal.authorizationcode.AutoAuthorizationCodeTokenRequestHandler;
import org.mule.module.oauth2.internal.authorizationcode.DefaultAuthorizationCodeGrantType;
import org.mule.module.oauth2.internal.authorizationcode.TokenResponseConfiguration;
import org.mule.module.oauth2.internal.clientcredentials.ClientCredentialsGrantType;
import org.mule.module.oauth2.internal.clientcredentials.ClientCredentialsTokenRequestHandler;
import org.mule.module.oauth2.internal.tokenmanager.InvalidateOauthContextMessageProcessor;
import org.mule.module.oauth2.internal.tokenmanager.TokenManagerConfig;

public class OAuth2NamespaceHandler extends MuleNamespaceHandler
{

    public void init()
    {
        registerBeanDefinitionParser("token-manager-config", new MuleOrphanDefinitionParser(TokenManagerConfig.class, true));
        final ChildDefinitionParser authorizationCodeGrantType = new ChildDefinitionParser("authentication", DefaultAuthorizationCodeGrantType.class);
        registerMuleBeanDefinitionParser("authorization-code-grant-type", authorizationCodeGrantType);
        registerMuleBeanDefinitionParser("authorization-request", new ChildDefinitionParser("authorizationRequestHandler", AuthorizationRequestHandler.class));
        final ParentContextDefinitionParser tokenRequestHandlerDefinitionParser = new ParentContextDefinitionParser("authorization-code-grant-type", new ChildDefinitionParser("tokenRequestHandler", AutoAuthorizationCodeTokenRequestHandler.class));
        tokenRequestHandlerDefinitionParser.otherwise(new ChildDefinitionParser("tokenRequestHandler", ClientCredentialsTokenRequestHandler.class));
        registerMuleBeanDefinitionParser("token-request", tokenRequestHandlerDefinitionParser);
        registerMuleBeanDefinitionParser("token-response", new ChildDefinitionParser("tokenResponseConfiguration", TokenResponseConfiguration.class));
        registerMuleBeanDefinitionParser("custom-parameters", new GenericChildMapDefinitionParser("customParameters", "custom-parameter", "paramName", "value"));
        registerMuleBeanDefinitionParser("custom-parameter-extractor", new ChildDefinitionParser("parameterExtractor", ParameterExtractor.class));
        registerMuleBeanDefinitionParser("client-credentials-grant-type", new ChildDefinitionParser("authentication", ClientCredentialsGrantType.class, true));
        registerMuleBeanDefinitionParser("invalidate-oauth-context", new MessageProcessorDefinitionParser(InvalidateOauthContextMessageProcessor.class));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy