Class MsalClientAdapter
java.lang.Object
org.frankframework.http.AbstractHttpSession
org.frankframework.http.AbstractHttpSender
org.frankframework.filesystem.MsalClientAdapter
- All Implemented Interfaces:
com.microsoft.aad.msal4j.IHttpClient, CanUseSharedResource<HttpSession>, FrankElement, HasApplicationContext, HasName, HasPhysicalDestination, IConfigurable, IScopeProvider, ISender, ISenderWithParameters, IWithParameters, NameAware, HasKeystore, HasTruststore, ConfigurableLifecycle, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle
@Protected
public class MsalClientAdapter
extends AbstractHttpSender
implements com.microsoft.aad.msal4j.IHttpClient
This class ensures that Microsoft Authentication Library (MSAL) requests are sent through the configured proxy and the correct SSLSocketFactory.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classSilly wrapper to create a clean SDKNested classes/interfaces inherited from class AbstractHttpSender
AbstractHttpSender.HttpMethodNested classes/interfaces inherited from class AbstractHttpSession
AbstractHttpSession.OauthAuthenticationMethod -
Field Summary
Fields inherited from class AbstractHttpSender
CORRELATION_ID_HEADER, headerParamsSet, MESSAGE_ID_HEADER, parametersToSkipWhenEmptySet, paramList, requestOrBodyParamsSet, staticUri, urlParameterFields inherited from class AbstractHttpSession
AUTHENTICATION_METHOD_KEY, logFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidConfigure this component.createGraphClient(String tenantId, CredentialFactory credentials) protected MessageextractResult(HttpResponseHandler responseHandler, PipeLineSession session) Custom implementation to extract the response and format it to a String result.protected Stringprotected org.apache.http.client.methods.HttpRequestBasegetMethod(URI uri, Message message, @NonNull ParameterValueList parameters, PipeLineSession session) Custom implementation to create aHttpRequestobject.com.microsoft.aad.msal4j.IHttpResponsesend(com.microsoft.aad.msal4j.HttpRequest httpRequest) voidstop()Stop/close the sender and deallocate resources.Methods inherited from class AbstractHttpSender
addParameter, appendParameters, getCredentials, getLogPrefix, getOauthAuthenticationMethod, getObjectType, getParameterList, getPhysicalDestinationName, getTokenEndpoint, sendMessage, setCharSet, setContentType, setHeadersParams, setMethodType, setParametersToSkipWhenEmpty, setResultStatusCodeSessionKey, setStyleSheetName, setUrl, setUrlParam, setXhtml, start, validateResponseCodeMethods inherited from class AbstractHttpSession
areCookiesDisabled, execute, getDomainAwareCredentials, getSSLConnectionSocketFactory, getURI, isRunning, setAllowSelfSignedCertificates, setAuthAlias, setAuthDomain, setAuthenticatedTokenRequest, setClientAlias, setClientId, setClientSecret, setConnectionIdleTimeout, setConnectionTimeToLive, setDisableCookies, setFollowRedirects, setHttpClient, setHttpContext, setIgnoreCertificateExpiredException, setIgnoreRedirects, setKeyManagerAlgorithm, setKeystore, setKeystoreAlias, setKeystoreAliasAuthAlias, setKeystoreAliasPassword, setKeystoreAuthAlias, setKeystorePassword, setKeystoreType, setMaxConnections, setMaxExecuteRetries, setOauthAuthenticationMethod, setPassword, setPrefillProxyAuthCache, setProtocol, setProxyAuthAlias, setProxyHost, setProxyPassword, setProxyPort, setProxyRealm, setProxyUsername, setSamlAssertionExpiry, setSamlAudience, setSamlIssuer, setSamlNameId, setScope, setStaleChecking, setStaleTimeout, setSupportedCipherSuites, setTimeout, setTokenEndpoint, setTokenExpiry, setTrustManagerAlgorithm, setTruststore, setTruststoreAuthAlias, setTruststorePassword, setTruststoreType, setUsername, setVerifyHostnameMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface CanUseSharedResource
getSharedResource, setSharedResourceRefMethods inherited from interface ConfigurableLifecycle
getPhase, isAutoStartup, isConfiguredMethods inherited from interface FrankElement
addConfigWarningMethods inherited from interface HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface HasKeystore
getKeyManagerAlgorithm, getKeystore, getKeystoreAlias, getKeystoreAliasAuthAlias, getKeystoreAliasPassword, getKeystoreAuthAlias, getKeystorePassword, getKeystoreTypeMethods inherited from interface HasTruststore
getTrustManagerAlgorithm, getTruststore, getTruststoreAuthAlias, getTruststorePassword, getTruststoreType, isAllowSelfSignedCertificates, isIgnoreCertificateExpiredException, isVerifyHostnameMethods inherited from interface ISender
isSynchronous, sendMessageOrThrowMethods inherited from interface ISenderWithParameters
consumesSessionVariableMethods inherited from interface org.springframework.context.Lifecycle
isRunningMethods inherited from interface org.springframework.context.SmartLifecycle
isPauseable, stop
-
Constructor Details
-
MsalClientAdapter
public MsalClientAdapter()
-
-
Method Details
-
configure
Description copied from interface:IConfigurableConfigure this component.configure()is called once at startup of the framework in the configure method of the owner of thisIConfigurable. Purpose of this method is to check whether the static configuration of the object is correct. As much as possible class-instantiating should take place in theconfigure(), to improve performance.In the case of a container, this will propagate the configure signal to all components that apply.
- Specified by:
configurein interfaceIConfigurable- Overrides:
configurein classAbstractHttpSender- Throws:
ConfigurationException- in case it was not able to configure the component.
-
stop
public void stop()Description copied from interface:ISenderStop/close the sender and deallocate resources.- Specified by:
stopin interfaceISender- Specified by:
stopin interfaceorg.springframework.context.Lifecycle- Overrides:
stopin classAbstractHttpSender
-
createGraphClient
public MsalClientAdapter.GraphClient createGraphClient(String tenantId, CredentialFactory credentials) throws IOException - Throws:
IOException
-
getAuthenticationToken
- Throws:
IOException
-
send
-
getMethod
protected org.apache.http.client.methods.HttpRequestBase getMethod(URI uri, Message message, @NonNull ParameterValueList parameters, PipeLineSession session) throws SenderException Description copied from class:AbstractHttpSenderCustom implementation to create aHttpRequestobject.- Specified by:
getMethodin classAbstractHttpSender- Parameters:
uri- endpoint to send the message tomessage- to be sentparameters- ParameterValueList that contains all the senders parameterssession- PipeLineSession to retrieve or store data from, or NULL when not set- Returns:
- a
HttpRequestobject - Throws:
SenderException
-
extractResult
Description copied from class:AbstractHttpSenderCustom implementation to extract the response and format it to a String result.
It is important that theresponsewill be read or will beclosed.- Specified by:
extractResultin classAbstractHttpSender- Parameters:
responseHandler-HttpResponseHandlerthat contains the response informationsession-PipeLineSessionwhich may be null- Returns:
- a string that will be passed to the pipeline
-