Package org.frankframework.filesystem
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 org.frankframework.http.AbstractHttpSender
AbstractHttpSender.HttpMethodNested classes/interfaces inherited from class org.frankframework.http.AbstractHttpSession
AbstractHttpSession.OauthAuthenticationMethod -
Field Summary
Fields inherited from class org.frankframework.http.AbstractHttpSender
CORRELATION_ID_HEADER, headerParamsSet, MESSAGE_ID_HEADER, parametersToSkipWhenEmptySet, paramList, requestOrBodyParamsSet, staticUri, urlParameterFields inherited from class org.frankframework.http.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, 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 org.frankframework.http.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 org.frankframework.http.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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface org.frankframework.core.CanUseSharedResource
getSharedResource, setSharedResourceRefMethods inherited from interface org.frankframework.lifecycle.ConfigurableLifecycle
getPhase, isAutoStartup, isConfiguredMethods inherited from interface org.frankframework.core.FrankElement
addConfigWarningMethods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface org.frankframework.encryption.HasKeystore
getKeyManagerAlgorithm, getKeystore, getKeystoreAlias, getKeystoreAliasAuthAlias, getKeystoreAliasPassword, getKeystoreAuthAlias, getKeystorePassword, getKeystoreTypeMethods inherited from interface org.frankframework.encryption.HasTruststore
getTrustManagerAlgorithm, getTruststore, getTruststoreAuthAlias, getTruststorePassword, getTruststoreType, isAllowSelfSignedCertificates, isIgnoreCertificateExpiredException, isVerifyHostnameMethods inherited from interface org.frankframework.core.ISender
isSynchronous, sendMessageOrThrowMethods inherited from interface org.frankframework.core.ISenderWithParameters
consumesSessionVariableMethods inherited from interface org.springframework.context.Lifecycle
isRunningMethods inherited from interface org.springframework.context.SmartLifecycle
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
public com.microsoft.aad.msal4j.IHttpResponse send(com.microsoft.aad.msal4j.HttpRequest httpRequest) throws Exception - Specified by:
sendin interfacecom.microsoft.aad.msal4j.IHttpClient- Throws:
Exception
-
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
-