Class Configuration
- java.lang.Object
-
- org.mockserver.configuration.Configuration
-
public class Configuration extends Object
- Author:
- jamesdbloom
-
-
Constructor Summary
Constructors Constructor Description Configuration()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description IntegeractionHandlerThreadCount()ConfigurationactionHandlerThreadCount(Integer actionHandlerThreadCount)Number of threads for the action handler thread poolvoidaddSslSubjectAlternativeNameDomains(String... additionalSubjectAlternativeNameDomains)voidaddSslSubjectAlternativeNameIps(String... additionalSubjectAlternativeNameIps)voidaddSubjectAlternativeName(String host)BooleanalwaysCloseSocketConnections()ConfigurationalwaysCloseSocketConnections(Boolean alwaysCloseSocketConnections)If true socket connections will always be closed after a response is returned, if false connection is only closed if request header indicate connection should be closed.BooleanassumeAllRequestsAreHttp()ConfigurationassumeAllRequestsAreHttp(Boolean assumeAllRequestsAreHttp)If false requests are assumed as binary if the method isn't one of "GET", "POST", "PUT", "HEAD", "OPTIONS", "PATCH", "DELETE", "TRACE" or "CONNECT"BooleanattemptToProxyIfNoMatchingExpectation()ConfigurationattemptToProxyIfNoMatchingExpectation(Boolean attemptToProxyIfNoMatchingExpectation)If true (the default) when no matching expectation is found, and the host header of the request does not match MockServer's host, then MockServer attempts to proxy the request if that fails then a 404 is returned.BinaryProxyListenerbinaryProxyListener()ConfigurationbinaryProxyListener(BinaryProxyListener binaryProxyListener)Set a org.mockserver.model.BinaryProxyListener called when binary content is proxiedStringcertificateAuthorityCertificate()ConfigurationcertificateAuthorityCertificate(String certificateAuthorityCertificate)File system path or classpath location of custom X.509 Certificate for Certificate Authority for TLS, the certificate must be a X509 PEM file and must match the certificateAuthorityPrivateKeyStringcertificateAuthorityPrivateKey()ConfigurationcertificateAuthorityPrivateKey(String certificateAuthorityPrivateKey)File system path or classpath location of custom Private Key for Certificate Authority for TLS, the private key must be a PKCS#8 or PKCS#1 PEM file and must match the certificateAuthorityCertificate To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocryptvoidclearSslSubjectAlternativeNameDomains()voidclearSslSubjectAlternativeNameIps()IntegerclientNioEventLoopThreadCount()ConfigurationclientNioEventLoopThreadCount(Integer clientNioEventLoopThreadCount)Client Netty worker thread pool size for handling requests and response.BooleancompactLogFormat()ConfigurationcompactLogFormat(Boolean compactLogFormat)static Configurationconfiguration()DelayconnectionDelay()ConfigurationconnectionDelay(Delay connectionDelay)StringcontrolPlaneJWTAuthenticationExpectedAudience()ConfigurationcontrolPlaneJWTAuthenticationExpectedAudience(String controlPlaneJWTAuthenticationExpectedAudience)Audience claim (i.e. aud) required when JWT authentication is enabled for control plane requestsStringcontrolPlaneJWTAuthenticationJWKSource()ConfigurationcontrolPlaneJWTAuthenticationJWKSource(String controlPlaneJWTAuthenticationJWKSource)JWK source used when JWT authentication is enabled for control plane requestsMap<String,String>controlPlaneJWTAuthenticationMatchingClaims()ConfigurationcontrolPlaneJWTAuthenticationMatchingClaims(Map<String,String> controlPlaneJWTAuthenticationMatchingClaims)Matching claims expected when JWT authentication is enabled for control plane requestsBooleancontrolPlaneJWTAuthenticationRequired()ConfigurationcontrolPlaneJWTAuthenticationRequired(Boolean controlPlaneJWTAuthenticationRequired)Require JWT authentication for all control plane requestsSet<String>controlPlaneJWTAuthenticationRequiredClaims()ConfigurationcontrolPlaneJWTAuthenticationRequiredClaims(Set<String> controlPlaneJWTAuthenticationRequiredClaims)Required claims that should exist (i.e. with any value) when JWT authentication is enabled for control plane requestsStringcontrolPlanePrivateKeyPath()ConfigurationcontrolPlanePrivateKeyPath(String controlPlanePrivateKeyPath)File system path or classpath location of a fixed custom private key for control plane connections using mTLS for authentication.StringcontrolPlaneTLSMutualAuthenticationCAChain()ConfigurationcontrolPlaneTLSMutualAuthenticationCAChain(String controlPlaneTLSMutualAuthenticationCAChain)File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for control plane mTLS authenticationBooleancontrolPlaneTLSMutualAuthenticationRequired()ConfigurationcontrolPlaneTLSMutualAuthenticationRequired(Boolean controlPlaneTLSMutualAuthenticationRequired)Require mTLS (also called client authentication and two-way TLS) for all control plane requestsStringcontrolPlaneX509CertificatePath()ConfigurationcontrolPlaneX509CertificatePath(String controlPlaneX509CertificatePath)File system path or classpath location of a fixed custom X.509 Certificate for control plane connections using mTLS for authentication.BooleancorsAllowCredentials()ConfigurationcorsAllowCredentials(Boolean corsAllowCredentials)The value used for CORS in the access-control-allow-credentials header.StringcorsAllowHeaders()ConfigurationcorsAllowHeaders(String corsAllowHeaders)the value used for CORS in the access-control-allow-headers and access-control-expose-headers headers.StringcorsAllowMethods()ConfigurationcorsAllowMethods(String corsAllowMethods)the value used for CORS in the access-control-allow-methods header.StringcorsAllowOrigin()ConfigurationcorsAllowOrigin(String corsAllowOrigin)the value used for CORS in the access-control-allow-origin header.IntegercorsMaxAgeInSeconds()ConfigurationcorsMaxAgeInSeconds(Integer corsMaxAgeInSeconds)The value used for CORS in the access-control-max-age header.BooleandetailedMatchFailures()ConfigurationdetailedMatchFailures(Boolean detailedMatchFailures)If true (the default) the log event recording that a request matcher did not match will include a detailed reason why each non-matching field did not match.BooleandetailedVerificationFailures()ConfigurationdetailedVerificationFailures(Boolean detailedVerificationFailures)If true (the default) verification failure messages include a detailed diff showing which fields did not match for the closest matching request.StringdirectoryToSaveDynamicSSLCertificate()ConfigurationdirectoryToSaveDynamicSSLCertificate(String directoryToSaveDynamicSSLCertificate)Directory used to save the dynamically generated Certificate Authority X.509 Certificate and Private Key.BooleandisableLogging()ConfigurationdisableLogging(Boolean disableLogging)Disable all logging and processing of log eventsBooleandisableSystemOut()ConfigurationdisableSystemOut(Boolean disableSystemOut)Disable printing log to system out for JVM, default is enabledBooleandnsEnabled()ConfigurationdnsEnabled(Boolean dnsEnabled)IntegerdnsPort()ConfigurationdnsPort(Integer dnsPort)BooleandynamicallyCreateCertificateAuthorityCertificate()ConfigurationdynamicallyCreateCertificateAuthorityCertificate(Boolean dynamicallyCreateCertificateAuthorityCertificate)Enable dynamic creation of Certificate Authority X509 certificate and private key.BooleanenableCORSForAllResponses()ConfigurationenableCORSForAllResponses(Boolean enableCORSForAllResponses)Enable CORS for all responses from MockServer, including the REST API and expectation responsesBooleanenableCORSForAPI()ConfigurationenableCORSForAPI(Boolean enableCORSForAPI)Enable CORS for MockServer REST API so that the API can be used for javascript running in browsers, such as seleniumBooleanforwardAdjustHostHeader()ConfigurationforwardAdjustHostHeader(Boolean forwardAdjustHostHeader)If true (the default) the Host header will be automatically adjusted to match the target server when forwarding requests.BooleanforwardBinaryRequestsWithoutWaitingForResponse()ConfigurationforwardBinaryRequestsWithoutWaitingForResponse(Boolean forwardBinaryRequestsWithoutWaitingForResponse)If true the BinaryProxyListener is called before a response is received from the remote host.StringforwardDefaultHostHeader()ConfigurationforwardDefaultHostHeader(String forwardDefaultHostHeader)Set a default Host header value to use when forwarding requests.InetSocketAddressforwardHttpProxy()ConfigurationforwardHttpProxy(InetSocketAddress forwardHttpProxy)Use HTTP proxy (i.e. via Host header) for all outbound / forwarded requestsInetSocketAddressforwardHttpsProxy()ConfigurationforwardHttpsProxy(InetSocketAddress forwardHttpsProxy)Use HTTPS proxy (i.e.StringforwardProxyAuthenticationPassword()ConfigurationforwardProxyAuthenticationPassword(String forwardProxyAuthenticationPassword)Password for proxy authentication when using HTTPS proxy (i.e.StringforwardProxyAuthenticationUsername()ConfigurationforwardProxyAuthenticationUsername(String forwardProxyAuthenticationUsername)Username for proxy authentication when using HTTPS proxy (i.e.BooleanforwardProxyBlockPrivateNetworks()ConfigurationforwardProxyBlockPrivateNetworks(Boolean forwardProxyBlockPrivateNetworks)When set to true, MockServer rejects forward and proxy targets that resolve to loopback, link-local, RFC 1918 private, or cloud metadata addresses (such as 169.254.169.254), blocking server-side request forgery (SSRF) via malicious expectations.StringforwardProxyCertificateChain()ConfigurationforwardProxyCertificateChain(String forwardProxyCertificateChain)File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for Trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.StringforwardProxyPrivateKey()ConfigurationforwardProxyPrivateKey(String forwardProxyPrivateKey)File system path or classpath location of custom Private Key for proxied TLS connections out of MockServer, the private key must be a PKCS#8 or PKCS#1 PEM fileStringforwardProxyTLSCustomTrustX509Certificates()ConfigurationforwardProxyTLSCustomTrustX509Certificates(String forwardProxyTLSCustomTrustX509Certificates)File system path or classpath location of custom file for trusted X509 Certificate Authority roots for forwarded or proxied requests, the certificate chain must be a X509 PEM file.ForwardProxyTLSX509CertificatesTrustManagerforwardProxyTLSX509CertificatesTrustManagerType()ConfigurationforwardProxyTLSX509CertificatesTrustManagerType(ForwardProxyTLSX509CertificatesTrustManager forwardProxyTLSX509CertificatesTrustManagerType)Configure trusted set of certificates for forwarded or proxied requests.InetSocketAddressforwardSocksProxy()ConfigurationforwardSocksProxy(InetSocketAddress forwardSocksProxy)Use SOCKS proxy for all outbound / forwarded requests, support TLS tunnelling of TCP connectionsLongglobalResponseDelayMillis()ConfigurationglobalResponseDelayMillis(Long globalResponseDelayMillis)StringgrpcDescriptorDirectory()ConfigurationgrpcDescriptorDirectory(String grpcDescriptorDirectory)BooleangrpcEnabled()ConfigurationgrpcEnabled(Boolean grpcEnabled)StringgrpcProtocPath()ConfigurationgrpcProtocPath(String grpcProtocPath)StringgrpcProtoDirectory()ConfigurationgrpcProtoDirectory(String grpcProtoDirectory)Booleanhttp2Enabled()Configurationhttp2Enabled(Boolean http2Enabled)If false HTTP/2 is disabled and ALPN no longer advertises h2, so HTTP/2 capable clients are forced to use HTTP/1.1 (and the HTTP/2 cleartext h2c upgrade is not detected)StringinitializationClass()ConfigurationinitializationClass(String initializationClass)The class (and package) used to initialize expectations in MockServer at startup, if set MockServer will load and call this class to initialize expectations when is starts.StringinitializationJsonPath()ConfigurationinitializationJsonPath(String initializationJsonPath)The path to the json file used to initialize expectations in MockServer at startup, if set MockServer will load this file and initialise expectations for each item in the file when is starts.StringinitializationOpenAPIPath()ConfigurationinitializationOpenAPIPath(String initializationOpenAPIPath)The path to the OpenAPI spec file used to initialize expectations in MockServer at startup, if set MockServer will load this file and create expectations for each operation when it starts.StringjavascriptDisallowedClasses()ConfigurationjavascriptDisallowedClasses(String javascriptDisallowedClasses)Set comma separate list of classes not allowed to be used by javascript templatesStringjavascriptDisallowedText()ConfigurationjavascriptDisallowedText(String javascriptDisallowedText)Set comma separate list of text not allowed to be contained in javascript templatesBooleanlaunchUIForLogLevelDebug()ConfigurationlaunchUIForLogLevelDebug(Boolean launchUIForLogLevelDebug)If true (the default) the ClientAndServer constructor will open the UI in the default browser when the log level is set to DEBUG.StringlivenessHttpGetPath()ConfigurationlivenessHttpGetPath(String livenessHttpGetPath)Path to support HTTP GET requests for status response (also available on PUT /mockserver/status).StringlocalBoundIP()ConfigurationlocalBoundIP(String localBoundIP)The local IP address to bind to for accepting new socket connectionsConsumer<LogEntry>logEventListener()ConfigurationlogEventListener(Consumer<LogEntry> logEventListener)org.slf4j.event.LevellogLevel()ConfigurationlogLevel(String level)Override the default logging level of INFOConfigurationlogLevel(org.slf4j.event.Level level)Override the default logging level of INFOMap<String,String>logLevelOverrides()ConfigurationlogLevelOverrides(Map<String,String> logLevelOverrides)BooleanmatchersFailFast()ConfigurationmatchersFailFast(Boolean matchersFailFast)If true (the default) request matchers will fail on the first non-matching field, if false request matchers will compare all fields.IntegermaxChunkSize()ConfigurationmaxChunkSize(Integer maxChunkSize)Maximum size of HTTP chunks in request or responsesIntegermaxExpectations()ConfigurationmaxExpectations(Integer maxExpectations)Maximum number of expectations stored in memory.LongmaxFutureTimeoutInMillis()ConfigurationmaxFutureTimeoutInMillis(Long maxFutureTimeoutInMillis)Maximum time allowed in milliseconds for any future to wait, for example when waiting for a response over a web socket callback.IntegermaxHeaderSize()ConfigurationmaxHeaderSize(Integer maxHeaderSize)Maximum size of HTTP request headersIntegermaximumNumberOfRequestToReturnInVerificationFailure()ConfigurationmaximumNumberOfRequestToReturnInVerificationFailure(Integer maximumNumberOfRequestToReturnInVerificationFailure)The maximum number of requests to return in verification failure result, if more expectations are found the failure result does not list them separatelyIntegermaxInitialLineLength()ConfigurationmaxInitialLineLength(Integer maxInitialLineLength)Maximum size of the first line of an HTTP requestIntegermaxLlmConversationBodySize()ConfigurationmaxLlmConversationBodySize(Integer maxLlmConversationBodySize)Maximum body size (in bytes) for LLM conversation request bodies.IntegermaxLogEntries()ConfigurationmaxLogEntries(Integer maxLogEntries)Maximum number of log entries stored in memory.IntegermaxRequestBodySize()ConfigurationmaxRequestBodySize(Integer maxRequestBodySize)Maximum aggregated body size (in bytes) accepted on inbound HTTP/1.1 and HTTP/2 requests.IntegermaxResponseBodySize()ConfigurationmaxResponseBodySize(Integer maxResponseBodySize)Maximum aggregated body size (in bytes) accepted on responses received from upstream servers when MockServer is acting as a proxy or forwarder.LongmaxSocketTimeoutInMillis()ConfigurationmaxSocketTimeoutInMillis(Long maxSocketTimeoutInMillis)Maximum time in milliseconds allowed for a response from a socketIntegermaxStreamingCaptureBytes()ConfigurationmaxStreamingCaptureBytes(Integer maxStreamingCaptureBytes)The maximum number of bytes of a streaming response body captured into the event log while relaying it.IntegermaxWebSocketExpectations()ConfigurationmaxWebSocketExpectations(Integer maxWebSocketExpectations)Maximum number of remote (not the same JVM) method callbacks (i.e. web sockets) registered for expectations.BooleanmcpEnabled()ConfigurationmcpEnabled(Boolean mcpEnabled)StringmemoryUsageCsvDirectory()ConfigurationmemoryUsageCsvDirectory(String memoryUsageCsvDirectory)Directory to output JVM memory usage metrics CSV files to when outputMemoryUsageCsv enabledBooleanmetricsEnabled()ConfigurationmetricsEnabled(Boolean metricsEnabled)Enable gathering of metrics, default is falseStringmustacheDisallowedText()ConfigurationmustacheDisallowedText(String mustacheDisallowedText)Set comma separate list of text not allowed to be contained in mustache templatesIntegernioEventLoopThreadCount()ConfigurationnioEventLoopThreadCount(Integer nioEventLoopThreadCount)Netty worker thread pool size for handling requests and response.StringnoProxyHosts()ConfigurationnoProxyHosts(String noProxyHosts)The list of hostnames to not use the configured proxy.StringopenAPIContextPathPrefix()ConfigurationopenAPIContextPathPrefix(String openAPIContextPathPrefix)A path prefix to add to all paths generated from OpenAPI specifications.BooleanopenAPIResponseValidation()ConfigurationopenAPIResponseValidation(Boolean openAPIResponseValidation)If enabled MockServer will validate that mock responses conform to the OpenAPI spec schema they were generated from.BooleanoutputMemoryUsageCsv()ConfigurationoutputMemoryUsageCsv(Boolean outputMemoryUsageCsv)Output JVM memory usage metrics to CSV file periodically called memoryUsage_<yyyy-MM-dd>.csvStringpersistedExpectationsPath()ConfigurationpersistedExpectationsPath(String persistedExpectationsPath)The file path used to save persisted expectations as json, which is updated whenever the expectation state is updated (i.e. add, clear, expires, etc.)StringpersistedRecordedExpectationsPath()ConfigurationpersistedRecordedExpectationsPath(String persistedRecordedExpectationsPath)The file path used to save persisted recorded expectations as json, which is updated whenever a new request is forwardedBooleanpersistExpectations()ConfigurationpersistExpectations(Boolean persistExpectations)Enable the persisting of expectations as json, which is updated whenever the expectation state is updated (i.e. add, clear, expires, etc.)BooleanpersistRecordedExpectations()ConfigurationpersistRecordedExpectations(Boolean persistRecordedExpectations)Enable the persisting of recorded expectations (proxy traffic) as json, which is updated whenever a new request is forwardedBooleanpreventCertificateDynamicUpdate()ConfigurationpreventCertificateDynamicUpdate(Boolean preventCertificateDynamicUpdate)Prevent certificates from dynamically updating when domain list changesStringprivateKeyPath()ConfigurationprivateKeyPath(String privateKeyPath)File system path or classpath location of a fixed custom private key for TLS connections into MockServer.BooleanproactivelyInitialiseTLS()ConfigurationproactivelyInitialiseTLS(Boolean proactivelyInitialiseTLS)Proactively initialise TLS during start to ensure that if dynamicallyCreateCertificateAuthorityCertificate is enabled the Certificate Authority X.509 Certificate and Private Key will be created during start up and not when the first TLS connection is received.StringproxyAuthenticationPassword()ConfigurationproxyAuthenticationPassword(String proxyAuthenticationPassword)The required password for proxy authentication to MockServerStringproxyAuthenticationRealm()ConfigurationproxyAuthenticationRealm(String proxyAuthenticationRealm)The authentication realm for proxy authentication to MockServerStringproxyAuthenticationUsername()ConfigurationproxyAuthenticationUsername(String proxyAuthenticationUsername)The required username for proxy authentication to MockServerList<ProxyPassMapping>proxyPassMappings()ConfigurationproxyPassMappings(List<ProxyPassMapping> proxyPassMappings)Configure ProxyPass mappings that map incoming path prefixes to upstream servers with automatic path rewriting.StringproxyRemoteHost()ConfigurationproxyRemoteHost(String proxyRemoteHost)The hostname of the remote server to proxy all requests to.IntegerproxyRemotePort()ConfigurationproxyRemotePort(Integer proxyRemotePort)The port of the remote server to proxy all requests to.booleanrebuildServerTLSContext()ConfigurationrebuildServerTLSContext(boolean rebuildServerTLSContext)booleanrebuildTLSContext()ConfigurationrebuildTLSContext(boolean rebuildTLSContext)intringBufferSize()LongsocketConnectionTimeoutInMillis()ConfigurationsocketConnectionTimeoutInMillis(Long socketConnectionTimeoutInMillis)Maximum time in milliseconds allowed to connect to a socketStringsslCertificateDomainName()ConfigurationsslCertificateDomainName(String sslCertificateDomainName)The domain name for auto-generate TLS certificatesSet<String>sslSubjectAlternativeNameDomains()ConfigurationsslSubjectAlternativeNameDomains(String... sslSubjectAlternativeNameDomains)The Subject Alternative Name (SAN) domain names for auto-generate TLS certificatesConfigurationsslSubjectAlternativeNameDomains(Set<String> sslSubjectAlternativeNameDomains)The Subject Alternative Name (SAN) domain names for auto-generate TLS certificatesSet<String>sslSubjectAlternativeNameIps()ConfigurationsslSubjectAlternativeNameIps(String... sslSubjectAlternativeNameIps)The Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificatesConfigurationsslSubjectAlternativeNameIps(Set<String> sslSubjectAlternativeNameIps)The Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificatesIntegerstreamIdleTimeoutSeconds()ConfigurationstreamIdleTimeoutSeconds(Integer streamIdleTimeoutSeconds)The maximum time in seconds a streaming response connection may be idle (no chunk received) before it is considered dead and closed.BooleanstreamingResponsesEnabled()ConfigurationstreamingResponsesEnabled(Boolean streamingResponsesEnabled)If true (the default) streaming responses (Server-Sent Events withContent-Type: text/event-stream) received while proxying are relayed to the client incrementally as they arrive, instead of being fully buffered before being forwarded.BooleantlsAllowInsecureProtocols()ConfigurationtlsAllowInsecureProtocols(Boolean tlsAllowInsecureProtocols)Whether to allow TLSv1 and TLSv1.1 in the effective TLS protocols list.StringtlsMutualAuthenticationCertificateChain()ConfigurationtlsMutualAuthenticationCertificateChain(String tlsMutualAuthenticationCertificateChain)File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.BooleantlsMutualAuthenticationRequired()ConfigurationtlsMutualAuthenticationRequired(Boolean tlsMutualAuthenticationRequired)Require mTLS (also called client authentication and two-way TLS) for all TLS connections / HTTPS requests to MockServerStringtlsProtocols()ConfigurationtlsProtocols(String tlsProtocols)Comma seperated list of TLS protocols, by default TLSv1,TLSv1.1,TLSv1.2BooleanuseSemicolonAsQueryParameterSeparator()ConfigurationuseSemicolonAsQueryParameterSeparator(Boolean useSemicolonAsQueryParameterSeparator)If true semicolons are treated as a separator for a query parameter string, if false the semicolon is treated as a normal character that is part of a query parameter value.BooleanvelocityDisallowClassLoading()ConfigurationvelocityDisallowClassLoading(Boolean velocityDisallowClassLoading)If true class loading is not allowed in velocity templatesStringvelocityDisallowedText()ConfigurationvelocityDisallowedText(String velocityDisallowedText)Set comma separate list of text not allowed to be contained in velocity templatesBooleanwatchInitializationJson()ConfigurationwatchInitializationJson(Boolean watchInitializationJson)If enabled the initialization json file will be watched for changes, any changes found will result in expectations being created, remove or updated by matching against their key.IntegerwebSocketClientEventLoopThreadCount()ConfigurationwebSocketClientEventLoopThreadCount(Integer webSocketClientEventLoopThreadCount)Client Netty worker thread pool size for handling requests and response.Stringx509CertificatePath()Configurationx509CertificatePath(String x509CertificatePath)File system path or classpath location of a fixed custom X.509 Certificate for TLS connections into MockServer.
-
-
-
Method Detail
-
configuration
public static Configuration configuration()
-
logLevel
public org.slf4j.event.Level logLevel()
-
logLevel
public Configuration logLevel(org.slf4j.event.Level level)
Override the default logging level of INFO- Parameters:
level- the log level, which can be TRACE, DEBUG, INFO, WARN, ERROR, OFF, FINEST, FINE, INFO, WARNING, SEVERE
-
logLevel
public Configuration logLevel(String level)
Override the default logging level of INFO- Parameters:
level- the log level, which can be TRACE, DEBUG, INFO, WARN, ERROR, OFF, FINEST, FINE, INFO, WARNING, SEVERE
-
logEventListener
public Configuration logEventListener(Consumer<LogEntry> logEventListener)
-
disableSystemOut
public Boolean disableSystemOut()
-
disableSystemOut
public Configuration disableSystemOut(Boolean disableSystemOut)
Disable printing log to system out for JVM, default is enabled- Parameters:
disableSystemOut- printing log to system out for JVM
-
disableLogging
public Boolean disableLogging()
-
disableLogging
public Configuration disableLogging(Boolean disableLogging)
Disable all logging and processing of log eventsThe default is false
- Parameters:
disableLogging- disable all logging
-
detailedMatchFailures
public Boolean detailedMatchFailures()
-
detailedMatchFailures
public Configuration detailedMatchFailures(Boolean detailedMatchFailures)
If true (the default) the log event recording that a request matcher did not match will include a detailed reason why each non-matching field did not match.- Parameters:
detailedMatchFailures- enabled detailed match failure log events
-
launchUIForLogLevelDebug
public Boolean launchUIForLogLevelDebug()
-
launchUIForLogLevelDebug
public Configuration launchUIForLogLevelDebug(Boolean launchUIForLogLevelDebug)
If true (the default) the ClientAndServer constructor will open the UI in the default browser when the log level is set to DEBUG.- Parameters:
launchUIForLogLevelDebug- enabled ClientAndServer constructor launching UI when log level is DEBUG
-
metricsEnabled
public Boolean metricsEnabled()
-
metricsEnabled
public Configuration metricsEnabled(Boolean metricsEnabled)
Enable gathering of metrics, default is false- Parameters:
metricsEnabled- enable metrics
-
mcpEnabled
public Boolean mcpEnabled()
-
mcpEnabled
public Configuration mcpEnabled(Boolean mcpEnabled)
-
grpcDescriptorDirectory
public String grpcDescriptorDirectory()
-
grpcDescriptorDirectory
public Configuration grpcDescriptorDirectory(String grpcDescriptorDirectory)
-
grpcProtoDirectory
public String grpcProtoDirectory()
-
grpcProtoDirectory
public Configuration grpcProtoDirectory(String grpcProtoDirectory)
-
grpcEnabled
public Boolean grpcEnabled()
-
grpcEnabled
public Configuration grpcEnabled(Boolean grpcEnabled)
-
grpcProtocPath
public String grpcProtocPath()
-
grpcProtocPath
public Configuration grpcProtocPath(String grpcProtocPath)
-
dnsEnabled
public Boolean dnsEnabled()
-
dnsEnabled
public Configuration dnsEnabled(Boolean dnsEnabled)
-
dnsPort
public Integer dnsPort()
-
dnsPort
public Configuration dnsPort(Integer dnsPort)
-
logLevelOverrides
public Configuration logLevelOverrides(Map<String,String> logLevelOverrides)
-
compactLogFormat
public Boolean compactLogFormat()
-
compactLogFormat
public Configuration compactLogFormat(Boolean compactLogFormat)
-
maxExpectations
public Integer maxExpectations()
-
maxExpectations
public Configuration maxExpectations(Integer maxExpectations)
Maximum number of expectations stored in memory. Expectations are stored in a circular queue so once this limit is reach the oldest and lowest priority expectations are overwritten
The default maximum depends on the available memory in the JVM with an upper limit of 15000
- Parameters:
maxExpectations- maximum number of expectations to store
-
maxLogEntries
public Integer maxLogEntries()
-
maxLogEntries
public Configuration maxLogEntries(Integer maxLogEntries)
Maximum number of log entries stored in memory. Log entries are stored in a circular queue so once this limit is reach the oldest log entries are overwritten
The default maximum depends on the available memory in the JVM with an upper limit of 100000
- Parameters:
maxLogEntries- maximum number of expectations to store
-
maxWebSocketExpectations
public Integer maxWebSocketExpectations()
-
maxWebSocketExpectations
public Configuration maxWebSocketExpectations(Integer maxWebSocketExpectations)
Maximum number of remote (not the same JVM) method callbacks (i.e. web sockets) registered for expectations. The web socket client registry entries are stored in a circular queue so once this limit is reach the oldest are overwritten.
The default is 1500
- Parameters:
maxWebSocketExpectations- maximum number of method callbacks (i.e. web sockets) registered for expectations
-
outputMemoryUsageCsv
public Boolean outputMemoryUsageCsv()
-
outputMemoryUsageCsv
public Configuration outputMemoryUsageCsv(Boolean outputMemoryUsageCsv)
Output JVM memory usage metrics to CSV file periodically called memoryUsage_<yyyy-MM-dd>.csv
- Parameters:
outputMemoryUsageCsv- output of JVM memory metrics
-
memoryUsageCsvDirectory
public String memoryUsageCsvDirectory()
-
memoryUsageCsvDirectory
public Configuration memoryUsageCsvDirectory(String memoryUsageCsvDirectory)
Directory to output JVM memory usage metrics CSV files to when outputMemoryUsageCsv enabled
- Parameters:
memoryUsageCsvDirectory- directory to save JVM memory metrics CSV files
-
nioEventLoopThreadCount
public Integer nioEventLoopThreadCount()
-
nioEventLoopThreadCount
public Configuration nioEventLoopThreadCount(Integer nioEventLoopThreadCount)
Netty worker thread pool size for handling requests and response. These threads handle deserializing and serialising HTTP requests and responses and some other fast logic, long running tasks are done on the action handler thread pool.
- Parameters:
nioEventLoopThreadCount- Netty worker thread pool size
-
actionHandlerThreadCount
public Integer actionHandlerThreadCount()
-
actionHandlerThreadCount
public Configuration actionHandlerThreadCount(Integer actionHandlerThreadCount)
Number of threads for the action handler thread pool
These threads are used for handling actions such as:
- serialising and writing expectation or proxied responses
- handling response delays in a non-blocking way (i.e. using a scheduler)
- executing class callbacks
- handling method / closure callbacks (using web sockets)
Default is maximum of 5 or available processors count
- Parameters:
actionHandlerThreadCount- Netty worker thread pool size
-
clientNioEventLoopThreadCount
public Integer clientNioEventLoopThreadCount()
-
clientNioEventLoopThreadCount
public Configuration clientNioEventLoopThreadCount(Integer clientNioEventLoopThreadCount)
Client Netty worker thread pool size for handling requests and response. These threads handle deserializing and serialising HTTP requests and responses and some other fast logic.
Default is 5 threads
- Parameters:
clientNioEventLoopThreadCount- Client Netty worker thread pool size
-
webSocketClientEventLoopThreadCount
public Integer webSocketClientEventLoopThreadCount()
-
webSocketClientEventLoopThreadCount
public Configuration webSocketClientEventLoopThreadCount(Integer webSocketClientEventLoopThreadCount)
Client Netty worker thread pool size for handling requests and response. These threads handle deserializing and serialising HTTP requests and responses and some other fast logic.
Default is 5 threads
- Parameters:
webSocketClientEventLoopThreadCount- Client Netty worker thread pool size
-
maxFutureTimeoutInMillis
public Long maxFutureTimeoutInMillis()
-
maxFutureTimeoutInMillis
public Configuration maxFutureTimeoutInMillis(Long maxFutureTimeoutInMillis)
Maximum time allowed in milliseconds for any future to wait, for example when waiting for a response over a web socket callback.Default is 60,000 ms
- Parameters:
maxFutureTimeoutInMillis- maximum time allowed in milliseconds
-
matchersFailFast
public Boolean matchersFailFast()
-
matchersFailFast
public Configuration matchersFailFast(Boolean matchersFailFast)
If true (the default) request matchers will fail on the first non-matching field, if false request matchers will compare all fields. This is useful to see all mismatching fields in the log event recording that a request matcher did not match.- Parameters:
matchersFailFast- enabled request matchers failing fast
-
maxSocketTimeoutInMillis
public Long maxSocketTimeoutInMillis()
-
maxSocketTimeoutInMillis
public Configuration maxSocketTimeoutInMillis(Long maxSocketTimeoutInMillis)
Maximum time in milliseconds allowed for a response from a socketDefault is 20,000 ms
- Parameters:
maxSocketTimeoutInMillis- maximum time in milliseconds allowed
-
socketConnectionTimeoutInMillis
public Long socketConnectionTimeoutInMillis()
-
socketConnectionTimeoutInMillis
public Configuration socketConnectionTimeoutInMillis(Long socketConnectionTimeoutInMillis)
Maximum time in milliseconds allowed to connect to a socketDefault is 20,000 ms
- Parameters:
socketConnectionTimeoutInMillis- maximum time allowed in milliseconds
-
connectionDelay
public Delay connectionDelay()
-
connectionDelay
public Configuration connectionDelay(Delay connectionDelay)
-
alwaysCloseSocketConnections
public Boolean alwaysCloseSocketConnections()
-
alwaysCloseSocketConnections
public Configuration alwaysCloseSocketConnections(Boolean alwaysCloseSocketConnections)
If true socket connections will always be closed after a response is returned, if false connection is only closed if request header indicate connection should be closed.
Default is false
- Parameters:
alwaysCloseSocketConnections- true socket connections will always be closed after a response is returned
-
localBoundIP
public String localBoundIP()
-
localBoundIP
public Configuration localBoundIP(String localBoundIP)
The local IP address to bind to for accepting new socket connectionsDefault is 0.0.0.0
- Parameters:
localBoundIP- local IP address to bind to for accepting new socket connections
-
maxInitialLineLength
public Integer maxInitialLineLength()
-
maxInitialLineLength
public Configuration maxInitialLineLength(Integer maxInitialLineLength)
Maximum size of the first line of an HTTP requestThe default is Integer.MAX_VALUE
- Parameters:
maxInitialLineLength- maximum size of the first line of an HTTP request
-
maxHeaderSize
public Integer maxHeaderSize()
-
maxHeaderSize
public Configuration maxHeaderSize(Integer maxHeaderSize)
Maximum size of HTTP request headersThe default is Integer.MAX_VALUE
- Parameters:
maxHeaderSize- maximum size of HTTP request headers
-
maxChunkSize
public Integer maxChunkSize()
-
maxChunkSize
public Configuration maxChunkSize(Integer maxChunkSize)
Maximum size of HTTP chunks in request or responsesThe default is Integer.MAX_VALUE
- Parameters:
maxChunkSize- maximum size of HTTP chunks in request or responses
-
maxRequestBodySize
public Integer maxRequestBodySize()
-
maxRequestBodySize
public Configuration maxRequestBodySize(Integer maxRequestBodySize)
Maximum aggregated body size (in bytes) accepted on inbound HTTP/1.1 and HTTP/2 requests.The default is 10,485,760 bytes (10 MiB).
- Parameters:
maxRequestBodySize- maximum inbound request body size in bytes
-
maxResponseBodySize
public Integer maxResponseBodySize()
-
maxResponseBodySize
public Configuration maxResponseBodySize(Integer maxResponseBodySize)
Maximum aggregated body size (in bytes) accepted on responses received from upstream servers when MockServer is acting as a proxy or forwarder.The default is 52,428,800 bytes (50 MiB).
- Parameters:
maxResponseBodySize- maximum upstream response body size in bytes
-
maxLlmConversationBodySize
public Integer maxLlmConversationBodySize()
-
maxLlmConversationBodySize
public Configuration maxLlmConversationBodySize(Integer maxLlmConversationBodySize)
Maximum body size (in bytes) for LLM conversation request bodies.The default is 1,048,576 bytes (1 MiB). Valid range is [16384, 67108864].
- Parameters:
maxLlmConversationBodySize- maximum LLM conversation body size in bytes
-
useSemicolonAsQueryParameterSeparator
public Boolean useSemicolonAsQueryParameterSeparator()
-
useSemicolonAsQueryParameterSeparator
public Configuration useSemicolonAsQueryParameterSeparator(Boolean useSemicolonAsQueryParameterSeparator)
If true semicolons are treated as a separator for a query parameter string, if false the semicolon is treated as a normal character that is part of a query parameter value.The default is true
- Parameters:
useSemicolonAsQueryParameterSeparator- if true semicolons are treated as a separator for a query parameter string
-
assumeAllRequestsAreHttp
public Boolean assumeAllRequestsAreHttp()
-
assumeAllRequestsAreHttp
public Configuration assumeAllRequestsAreHttp(Boolean assumeAllRequestsAreHttp)
If false requests are assumed as binary if the method isn't one of "GET", "POST", "PUT", "HEAD", "OPTIONS", "PATCH", "DELETE", "TRACE" or "CONNECT"The default is false
- Parameters:
assumeAllRequestsAreHttp- if false requests are assumed as binary if the method isn't one of "GET", "POST", "PUT", "HEAD", "OPTIONS", "PATCH", "DELETE", "TRACE" or "CONNECT"
-
http2Enabled
public Boolean http2Enabled()
-
http2Enabled
public Configuration http2Enabled(Boolean http2Enabled)
If false HTTP/2 is disabled and ALPN no longer advertises h2, so HTTP/2 capable clients are forced to use HTTP/1.1 (and the HTTP/2 cleartext h2c upgrade is not detected)The default is true
- Parameters:
http2Enabled- if false HTTP/2 is disabled and clients are forced to use HTTP/1.1
-
streamingResponsesEnabled
public Boolean streamingResponsesEnabled()
-
streamingResponsesEnabled
public Configuration streamingResponsesEnabled(Boolean streamingResponsesEnabled)
If true (the default) streaming responses (Server-Sent Events withContent-Type: text/event-stream) received while proxying are relayed to the client incrementally as they arrive, instead of being fully buffered before being forwarded. This keeps streaming APIs (such as LLM APIs) responsive when proxied. Only SSE responses are detected as streaming; ordinary chunked responses are aggregated normally.Default is true
- Parameters:
streamingResponsesEnabled- enable incremental relay of streaming responses while proxying
-
maxStreamingCaptureBytes
public Integer maxStreamingCaptureBytes()
-
maxStreamingCaptureBytes
public Configuration maxStreamingCaptureBytes(Integer maxStreamingCaptureBytes)
The maximum number of bytes of a streaming response body captured into the event log while relaying it. The full stream is always relayed to the client; this only bounds how much is retained for the dashboard and retrieve API. Once exceeded the logged body is truncated and flagged.Default is 262144 (256 KB)
- Parameters:
maxStreamingCaptureBytes- maximum number of streaming response body bytes captured into the event log
-
streamIdleTimeoutSeconds
public Integer streamIdleTimeoutSeconds()
-
streamIdleTimeoutSeconds
public Configuration streamIdleTimeoutSeconds(Integer streamIdleTimeoutSeconds)
The maximum time in seconds a streaming response connection may be idle (no chunk received) before it is considered dead and closed. This replaces the fixed socket timeout for streaming responses, which would otherwise terminate long-lived streams.Default is 60 seconds
- Parameters:
streamIdleTimeoutSeconds- maximum idle time in seconds between streaming response chunks
-
forwardBinaryRequestsWithoutWaitingForResponse
public Boolean forwardBinaryRequestsWithoutWaitingForResponse()
-
forwardBinaryRequestsWithoutWaitingForResponse
public Configuration forwardBinaryRequestsWithoutWaitingForResponse(Boolean forwardBinaryRequestsWithoutWaitingForResponse)
If true the BinaryProxyListener is called before a response is received from the remote host. This enables the proxying of messages without a response.The default is false
- Parameters:
forwardBinaryRequestsWithoutWaitingForResponse- target value
-
binaryProxyListener
public BinaryProxyListener binaryProxyListener()
-
binaryProxyListener
public Configuration binaryProxyListener(BinaryProxyListener binaryProxyListener)
Set a org.mockserver.model.BinaryProxyListener called when binary content is proxied- Parameters:
binaryProxyListener- a BinaryProxyListener called when binary content is proxied
-
enableCORSForAPI
public Boolean enableCORSForAPI()
-
enableCORSForAPI
public Configuration enableCORSForAPI(Boolean enableCORSForAPI)
Enable CORS for MockServer REST API so that the API can be used for javascript running in browsers, such as seleniumThe default is false
- Parameters:
enableCORSForAPI- CORS for MockServer REST API
-
enableCORSForAllResponses
public Boolean enableCORSForAllResponses()
-
enableCORSForAllResponses
public Configuration enableCORSForAllResponses(Boolean enableCORSForAllResponses)
Enable CORS for all responses from MockServer, including the REST API and expectation responsesThe default is false
- Parameters:
enableCORSForAllResponses- CORS for all responses from MockServer
-
corsAllowOrigin
public String corsAllowOrigin()
-
corsAllowOrigin
public Configuration corsAllowOrigin(String corsAllowOrigin)
the value used for CORS in the access-control-allow-origin header.
The default is ""
- Parameters:
corsAllowOrigin- the value used for CORS in the access-control-allow-methods header
-
corsAllowMethods
public String corsAllowMethods()
-
corsAllowMethods
public Configuration corsAllowMethods(String corsAllowMethods)
the value used for CORS in the access-control-allow-methods header.
The default is ""
- Parameters:
corsAllowMethods- the value used for CORS in the access-control-allow-methods header
-
corsAllowHeaders
public String corsAllowHeaders()
-
corsAllowHeaders
public Configuration corsAllowHeaders(String corsAllowHeaders)
the value used for CORS in the access-control-allow-headers and access-control-expose-headers headers.
In addition to this default value any headers specified in the request header access-control-request-headers also get added to access-control-allow-headers and access-control-expose-headers headers in a CORS response.
The default is ""
- Parameters:
corsAllowHeaders- the value used for CORS in the access-control-allow-headers and access-control-expose-headers headers
-
corsAllowCredentials
public Boolean corsAllowCredentials()
-
corsAllowCredentials
public Configuration corsAllowCredentials(Boolean corsAllowCredentials)
The value used for CORS in the access-control-allow-credentials header.The default is false
- Parameters:
corsAllowCredentials- the value used for CORS in the access-control-allow-credentials header
-
corsMaxAgeInSeconds
public Integer corsMaxAgeInSeconds()
-
corsMaxAgeInSeconds
public Configuration corsMaxAgeInSeconds(Integer corsMaxAgeInSeconds)
The value used for CORS in the access-control-max-age header.The default is 0
- Parameters:
corsMaxAgeInSeconds- the value used for CORS in the access-control-max-age header.
-
javascriptDisallowedClasses
public String javascriptDisallowedClasses()
-
javascriptDisallowedClasses
public Configuration javascriptDisallowedClasses(String javascriptDisallowedClasses)
Set comma separate list of classes not allowed to be used by javascript templatesThe default is all allowed
- Parameters:
javascriptDisallowedClasses- comma separated list of classes not allowed to be used
-
javascriptDisallowedText
public String javascriptDisallowedText()
-
javascriptDisallowedText
public Configuration javascriptDisallowedText(String javascriptDisallowedText)
Set comma separate list of text not allowed to be contained in javascript templatesThe default is all allowed
- Parameters:
javascriptDisallowedText- comma separated list of text not allowed to be contained in javascript templates
-
velocityDisallowClassLoading
public Boolean velocityDisallowClassLoading()
-
velocityDisallowClassLoading
public Configuration velocityDisallowClassLoading(Boolean velocityDisallowClassLoading)
If true class loading is not allowed in velocity templatesThe default is false
- Parameters:
velocityDisallowClassLoading- class loading is not allowed in velocity templates
-
velocityDisallowedText
public String velocityDisallowedText()
-
velocityDisallowedText
public Configuration velocityDisallowedText(String velocityDisallowedText)
Set comma separate list of text not allowed to be contained in velocity templatesThe default is all allowed
- Parameters:
velocityDisallowedText- comma separated list of text not allowed to be contained in velocity templates
-
mustacheDisallowedText
public String mustacheDisallowedText()
-
mustacheDisallowedText
public Configuration mustacheDisallowedText(String mustacheDisallowedText)
Set comma separate list of text not allowed to be contained in mustache templatesThe default is all allowed
- Parameters:
mustacheDisallowedText- comma separated list of text not allowed to be contained in mustache templates
-
initializationClass
public String initializationClass()
-
initializationClass
public Configuration initializationClass(String initializationClass)
The class (and package) used to initialize expectations in MockServer at startup, if set MockServer will load and call this class to initialize expectations when is starts.The default is null
- Parameters:
initializationClass- class (and package) used to initialize expectations in MockServer at startup
-
initializationJsonPath
public String initializationJsonPath()
-
initializationJsonPath
public Configuration initializationJsonPath(String initializationJsonPath)
The path to the json file used to initialize expectations in MockServer at startup, if set MockServer will load this file and initialise expectations for each item in the file when is starts.
The expected format of the file is a JSON array of expectations, as per the REST API format
To watch multiple files use a file globs as documented here: https://mock-server.com/mock_server/initializing_expectations.html#expectation_initializer_json_glob_patterns
- Parameters:
initializationJsonPath- path to the json file used to initialize expectations in MockServer at startup
-
initializationOpenAPIPath
public String initializationOpenAPIPath()
-
initializationOpenAPIPath
public Configuration initializationOpenAPIPath(String initializationOpenAPIPath)
The path to the OpenAPI spec file used to initialize expectations in MockServer at startup, if set MockServer will load this file and create expectations for each operation when it starts.
The file can be a YAML (.yaml, .yml) or JSON (.json) OpenAPI v3 specification.
To watch multiple files use file globs as documented here: https://mock-server.com/mock_server/initializing_expectations.html#expectation_initializer_json_glob_patterns
- Parameters:
initializationOpenAPIPath- path to the OpenAPI spec file used to initialize expectations in MockServer at startup
-
openAPIContextPathPrefix
public String openAPIContextPathPrefix()
-
openAPIContextPathPrefix
public Configuration openAPIContextPathPrefix(String openAPIContextPathPrefix)
A path prefix to add to all paths generated from OpenAPI specifications.
For example, if set to "/api/v1" then a path "/pets" from the spec becomes "/api/v1/pets".
- Parameters:
openAPIContextPathPrefix- the path prefix to add to OpenAPI paths
-
openAPIResponseValidation
public Boolean openAPIResponseValidation()
-
openAPIResponseValidation
public Configuration openAPIResponseValidation(Boolean openAPIResponseValidation)
If enabled MockServer will validate that mock responses conform to the OpenAPI spec schema they were generated from.
Validation is advisory only - responses are still returned to the client even if validation fails.
The default is false
- Parameters:
openAPIResponseValidation- if enabled mock responses will be validated against the OpenAPI spec schema
-
watchInitializationJson
public Boolean watchInitializationJson()
-
watchInitializationJson
public Configuration watchInitializationJson(Boolean watchInitializationJson)
If enabled the initialization json file will be watched for changes, any changes found will result in expectations being created, remove or updated by matching against their key.
If duplicate keys exist only the last duplicate key in the file will be processed and all duplicates except the last duplicate will be removed.
The order of expectations in the file is the order in which they are created if they are new, however, re-ordering existing expectations does not change the order they are matched against incoming requests.
The default is false
- Parameters:
watchInitializationJson- if enabled the initialization json file will be watched for changes
-
persistExpectations
public Boolean persistExpectations()
-
persistExpectations
public Configuration persistExpectations(Boolean persistExpectations)
Enable the persisting of expectations as json, which is updated whenever the expectation state is updated (i.e. add, clear, expires, etc.)The default is false
- Parameters:
persistExpectations- the persisting of expectations as json
-
persistedExpectationsPath
public String persistedExpectationsPath()
-
persistedExpectationsPath
public Configuration persistedExpectationsPath(String persistedExpectationsPath)
The file path used to save persisted expectations as json, which is updated whenever the expectation state is updated (i.e. add, clear, expires, etc.)The default is "persistedExpectations.json"
- Parameters:
persistedExpectationsPath- file path used to save persisted expectations as json
-
persistRecordedExpectations
public Boolean persistRecordedExpectations()
-
persistRecordedExpectations
public Configuration persistRecordedExpectations(Boolean persistRecordedExpectations)
Enable the persisting of recorded expectations (proxy traffic) as json, which is updated whenever a new request is forwardedThe default is false
- Parameters:
persistRecordedExpectations- the persisting of recorded expectations as json
-
persistedRecordedExpectationsPath
public String persistedRecordedExpectationsPath()
-
persistedRecordedExpectationsPath
public Configuration persistedRecordedExpectationsPath(String persistedRecordedExpectationsPath)
The file path used to save persisted recorded expectations as json, which is updated whenever a new request is forwardedThe default is "persistedRecordedExpectations.json"
- Parameters:
persistedRecordedExpectationsPath- file path used to save persisted recorded expectations as json
-
maximumNumberOfRequestToReturnInVerificationFailure
public Integer maximumNumberOfRequestToReturnInVerificationFailure()
-
maximumNumberOfRequestToReturnInVerificationFailure
public Configuration maximumNumberOfRequestToReturnInVerificationFailure(Integer maximumNumberOfRequestToReturnInVerificationFailure)
The maximum number of requests to return in verification failure result, if more expectations are found the failure result does not list them separately- Parameters:
maximumNumberOfRequestToReturnInVerificationFailure- maximum number of expectations to return in verification failure result
-
detailedVerificationFailures
public Boolean detailedVerificationFailures()
-
detailedVerificationFailures
public Configuration detailedVerificationFailures(Boolean detailedVerificationFailures)
If true (the default) verification failure messages include a detailed diff showing which fields did not match for the closest matching request.- Parameters:
detailedVerificationFailures- enabled detailed verification failure messages
-
attemptToProxyIfNoMatchingExpectation
public Boolean attemptToProxyIfNoMatchingExpectation()
-
attemptToProxyIfNoMatchingExpectation
public Configuration attemptToProxyIfNoMatchingExpectation(Boolean attemptToProxyIfNoMatchingExpectation)
If true (the default) when no matching expectation is found, and the host header of the request does not match MockServer's host, then MockServer attempts to proxy the request if that fails then a 404 is returned. If false when no matching expectation is found, and MockServer is not being used as a proxy, then MockServer always returns a 404 immediately.- Parameters:
attemptToProxyIfNoMatchingExpectation- enables automatically attempted proxying of request that don't match an expectation and look like they should be proxied
-
forwardHttpProxy
public InetSocketAddress forwardHttpProxy()
-
forwardHttpProxy
public Configuration forwardHttpProxy(InetSocketAddress forwardHttpProxy)
Use HTTP proxy (i.e. via Host header) for all outbound / forwarded requestsThe default is null
- Parameters:
forwardHttpProxy- host and port for HTTP proxy (i.e. via Host header) for all outbound / forwarded requests
-
forwardHttpsProxy
public InetSocketAddress forwardHttpsProxy()
-
forwardHttpsProxy
public Configuration forwardHttpsProxy(InetSocketAddress forwardHttpsProxy)
Use HTTPS proxy (i.e. HTTP CONNECT) for all outbound / forwarded requests, supports TLS tunnelling of HTTPS requestsThe default is null
- Parameters:
forwardHttpsProxy- host and port for HTTPS proxy (i.e. HTTP CONNECT) for all outbound / forwarded requests
-
forwardSocksProxy
public InetSocketAddress forwardSocksProxy()
-
forwardSocksProxy
public Configuration forwardSocksProxy(InetSocketAddress forwardSocksProxy)
Use SOCKS proxy for all outbound / forwarded requests, support TLS tunnelling of TCP connectionsThe default is null
- Parameters:
forwardSocksProxy- host and port for SOCKS proxy for all outbound / forwarded requests
-
forwardProxyAuthenticationUsername
public String forwardProxyAuthenticationUsername()
-
forwardProxyAuthenticationUsername
public Configuration forwardProxyAuthenticationUsername(String forwardProxyAuthenticationUsername)
Username for proxy authentication when using HTTPS proxy (i.e. HTTP CONNECT) for all outbound / forwarded requests
Note: 8u111 Update Release Notes state that the Basic authentication scheme has been deactivated when setting up an HTTPS tunnel. To resolve this clear or set to an empty string the following system properties:
jdk.http.auth.tunneling.disabledSchemesandjdk.http.auth.proxying.disabledSchemes.The default is null
- Parameters:
forwardProxyAuthenticationUsername- username for proxy authentication
-
forwardProxyAuthenticationPassword
public String forwardProxyAuthenticationPassword()
-
forwardProxyAuthenticationPassword
public Configuration forwardProxyAuthenticationPassword(String forwardProxyAuthenticationPassword)
Password for proxy authentication when using HTTPS proxy (i.e. HTTP CONNECT) for all outbound / forwarded requests
Note: 8u111 Update Release Notes state that the Basic authentication scheme has been deactivated when setting up an HTTPS tunnel. To resolve this clear or set to an empty string the following system properties:
jdk.http.auth.tunneling.disabledSchemesandjdk.http.auth.proxying.disabledSchemes.The default is null
- Parameters:
forwardProxyAuthenticationPassword- password for proxy authentication
-
proxyAuthenticationRealm
public String proxyAuthenticationRealm()
-
proxyAuthenticationRealm
public Configuration proxyAuthenticationRealm(String proxyAuthenticationRealm)
The authentication realm for proxy authentication to MockServer- Parameters:
proxyAuthenticationRealm- the authentication realm for proxy authentication
-
proxyAuthenticationUsername
public String proxyAuthenticationUsername()
-
proxyAuthenticationUsername
public Configuration proxyAuthenticationUsername(String proxyAuthenticationUsername)
The required username for proxy authentication to MockServer
Note: 8u111 Update Release Notes state that the Basic authentication scheme has been deactivated when setting up an HTTPS tunnel. To resolve this clear or set to an empty string the following system properties:
jdk.http.auth.tunneling.disabledSchemesandjdk.http.auth.proxying.disabledSchemes.The default is ""
- Parameters:
proxyAuthenticationUsername- required username for proxy authentication to MockServer
-
proxyAuthenticationPassword
public String proxyAuthenticationPassword()
-
proxyAuthenticationPassword
public Configuration proxyAuthenticationPassword(String proxyAuthenticationPassword)
The required password for proxy authentication to MockServer
Note: 8u111 Update Release Notes state that the Basic authentication scheme has been deactivated when setting up an HTTPS tunnel. To resolve this clear or set to an empty string the following system properties:
jdk.http.auth.tunneling.disabledSchemesandjdk.http.auth.proxying.disabledSchemes.The default is ""
- Parameters:
proxyAuthenticationPassword- required password for proxy authentication to MockServer
-
noProxyHosts
public String noProxyHosts()
-
noProxyHosts
public Configuration noProxyHosts(String noProxyHosts)
The list of hostnames to not use the configured proxy. Several values may be present, seperated by comma (,)
The default is ""- Parameters:
noProxyHosts- Comma-seperated list of hosts to not be proxied.
-
proxyRemoteHost
public String proxyRemoteHost()
-
proxyRemoteHost
public Configuration proxyRemoteHost(String proxyRemoteHost)
The hostname of the remote server to proxy all requests to. When set, unmatched requests are forwarded to this host.- Parameters:
proxyRemoteHost- the hostname to forward requests to
-
proxyRemotePort
public Integer proxyRemotePort()
-
proxyRemotePort
public Configuration proxyRemotePort(Integer proxyRemotePort)
The port of the remote server to proxy all requests to. Must be specified together with proxyRemoteHost.- Parameters:
proxyRemotePort- the port to forward requests to
-
forwardAdjustHostHeader
public Boolean forwardAdjustHostHeader()
-
forwardAdjustHostHeader
public Configuration forwardAdjustHostHeader(Boolean forwardAdjustHostHeader)
If true (the default) the Host header will be automatically adjusted to match the target server when forwarding requests. This prevents HTTP 421 Misdirected Request errors when the target server validates Host headers. If false the original Host header is preserved.- Parameters:
forwardAdjustHostHeader- enables automatic Host header adjustment for forwarded requests
-
forwardDefaultHostHeader
public String forwardDefaultHostHeader()
-
forwardDefaultHostHeader
public Configuration forwardDefaultHostHeader(String forwardDefaultHostHeader)
Set a default Host header value to use when forwarding requests. When set, the Host header will be overridden with this value for all forwarded requests, regardless of the target server's address. This is useful when the target server routes requests based on the Host header.- Parameters:
forwardDefaultHostHeader- the Host header value to set on forwarded requests
-
proxyPassMappings
public List<ProxyPassMapping> proxyPassMappings()
-
proxyPassMappings
public Configuration proxyPassMappings(List<ProxyPassMapping> proxyPassMappings)
Configure ProxyPass mappings that map incoming path prefixes to upstream servers with automatic path rewriting.- Parameters:
proxyPassMappings- list of ProxyPassMapping objects
-
globalResponseDelayMillis
public Long globalResponseDelayMillis()
-
globalResponseDelayMillis
public Configuration globalResponseDelayMillis(Long globalResponseDelayMillis)
-
livenessHttpGetPath
public String livenessHttpGetPath()
-
livenessHttpGetPath
public Configuration livenessHttpGetPath(String livenessHttpGetPath)
Path to support HTTP GET requests for status response (also available on PUT /mockserver/status).If this value is not modified then only PUT /mockserver/status but is a none blank value is provided for this value then GET requests to this path will return the 200 Ok status response showing the MockServer version and bound ports.
A GET request to this path will be matched before any expectation matching or proxying of requests.
The default is ""
- Parameters:
livenessHttpGetPath- path to support HTTP GET requests for status response
-
controlPlaneTLSMutualAuthenticationRequired
public Boolean controlPlaneTLSMutualAuthenticationRequired()
-
controlPlaneTLSMutualAuthenticationRequired
public Configuration controlPlaneTLSMutualAuthenticationRequired(Boolean controlPlaneTLSMutualAuthenticationRequired)
Require mTLS (also called client authentication and two-way TLS) for all control plane requests- Parameters:
controlPlaneTLSMutualAuthenticationRequired- TLS mutual authentication for all control plane requests
-
controlPlaneTLSMutualAuthenticationCAChain
public String controlPlaneTLSMutualAuthenticationCAChain()
-
controlPlaneTLSMutualAuthenticationCAChain
public Configuration controlPlaneTLSMutualAuthenticationCAChain(String controlPlaneTLSMutualAuthenticationCAChain)
File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for control plane mTLS authenticationThe X.509 Certificate Chain is for trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.
This certificate chain will be used for to performs mTLS (client authentication) for inbound TLS connections if controlPlaneTLSMutualAuthenticationRequired is enabled
- Parameters:
controlPlaneTLSMutualAuthenticationCAChain- File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for Trusting (i.e. signature verification of) Client X.509 Certificates
-
controlPlanePrivateKeyPath
public String controlPlanePrivateKeyPath()
-
controlPlanePrivateKeyPath
public Configuration controlPlanePrivateKeyPath(String controlPlanePrivateKeyPath)
File system path or classpath location of a fixed custom private key for control plane connections using mTLS for authentication.The private key must be a PKCS#8 or PKCS#1 PEM file and must be the private key corresponding to the controlPlaneX509CertificatePath X509 (public key) configuration. The controlPlaneTLSMutualAuthenticationCAChain configuration must be the Certificate Authority for the corresponding X509 certificate (i.e. able to valid its signature).
To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
This configuration will be ignored unless x509CertificatePath is also set.
- Parameters:
controlPlanePrivateKeyPath- location of the PKCS#8 PEM file containing the private key
-
controlPlaneX509CertificatePath
public String controlPlaneX509CertificatePath()
-
controlPlaneX509CertificatePath
public Configuration controlPlaneX509CertificatePath(String controlPlaneX509CertificatePath)
File system path or classpath location of a fixed custom X.509 Certificate for control plane connections using mTLS for authentication.The certificate must be a X509 PEM file and must be the public key corresponding to the controlPlanePrivateKeyPath private key configuration. The controlPlaneTLSMutualAuthenticationCAChain configuration must be the Certificate Authority for this certificate (i.e. able to valid its signature).
This configuration will be ignored unless privateKeyPath is also set.
- Parameters:
controlPlaneX509CertificatePath- location of the PEM file containing the X509 certificate
-
controlPlaneJWTAuthenticationRequired
public Boolean controlPlaneJWTAuthenticationRequired()
-
controlPlaneJWTAuthenticationRequired
public Configuration controlPlaneJWTAuthenticationRequired(Boolean controlPlaneJWTAuthenticationRequired)
Require JWT authentication for all control plane requests
- Parameters:
controlPlaneJWTAuthenticationRequired- TLS mutual authentication for all control plane requests
-
controlPlaneJWTAuthenticationJWKSource
public String controlPlaneJWTAuthenticationJWKSource()
-
controlPlaneJWTAuthenticationJWKSource
public Configuration controlPlaneJWTAuthenticationJWKSource(String controlPlaneJWTAuthenticationJWKSource)
JWK source used when JWT authentication is enabled for control plane requests
JWK source can be a file system path, classpath location or a URL
See: https://openid.net/specs/draft-jones-json-web-key-03.html
- Parameters:
controlPlaneJWTAuthenticationJWKSource- file system path, classpath location or a URL of JWK source
-
controlPlaneJWTAuthenticationExpectedAudience
public String controlPlaneJWTAuthenticationExpectedAudience()
-
controlPlaneJWTAuthenticationExpectedAudience
public Configuration controlPlaneJWTAuthenticationExpectedAudience(String controlPlaneJWTAuthenticationExpectedAudience)
Audience claim (i.e. aud) required when JWT authentication is enabled for control plane requests
- Parameters:
controlPlaneJWTAuthenticationExpectedAudience- required value for audience claim (i.e. aud)
-
controlPlaneJWTAuthenticationMatchingClaims
public Map<String,String> controlPlaneJWTAuthenticationMatchingClaims()
-
controlPlaneJWTAuthenticationMatchingClaims
public Configuration controlPlaneJWTAuthenticationMatchingClaims(Map<String,String> controlPlaneJWTAuthenticationMatchingClaims)
Matching claims expected when JWT authentication is enabled for control plane requests
Value should be string with comma separated key=value items, for example: scope=internal public,sub=some_subject
- Parameters:
controlPlaneJWTAuthenticationMatchingClaims- required values for claims
-
controlPlaneJWTAuthenticationRequiredClaims
public Set<String> controlPlaneJWTAuthenticationRequiredClaims()
-
controlPlaneJWTAuthenticationRequiredClaims
public Configuration controlPlaneJWTAuthenticationRequiredClaims(Set<String> controlPlaneJWTAuthenticationRequiredClaims)
Required claims that should exist (i.e. with any value) when JWT authentication is enabled for control plane requests
Value should be string with comma separated values, for example: scope,sub
- Parameters:
controlPlaneJWTAuthenticationRequiredClaims- required claims
-
proactivelyInitialiseTLS
public Boolean proactivelyInitialiseTLS()
-
proactivelyInitialiseTLS
public Configuration proactivelyInitialiseTLS(Boolean proactivelyInitialiseTLS)
Proactively initialise TLS during start to ensure that if dynamicallyCreateCertificateAuthorityCertificate is enabled the Certificate Authority X.509 Certificate and Private Key will be created during start up and not when the first TLS connection is received.
This setting will also ensure any configured private key and X.509 will be loaded during start up and not when the first TLS connection is received to give immediate feedback on any related TLS configuration errors.
- Parameters:
proactivelyInitialiseTLS- proactively initialise TLS at startup
-
rebuildTLSContext
public boolean rebuildTLSContext()
-
rebuildTLSContext
public Configuration rebuildTLSContext(boolean rebuildTLSContext)
-
rebuildServerTLSContext
public boolean rebuildServerTLSContext()
-
rebuildServerTLSContext
public Configuration rebuildServerTLSContext(boolean rebuildServerTLSContext)
-
tlsProtocols
public String tlsProtocols()
-
tlsProtocols
public Configuration tlsProtocols(String tlsProtocols)
Comma seperated list of TLS protocols, by default TLSv1,TLSv1.1,TLSv1.2- Parameters:
tlsProtocols- comma seperated list of TLS protocols
-
tlsAllowInsecureProtocols
public Boolean tlsAllowInsecureProtocols()
-
tlsAllowInsecureProtocols
public Configuration tlsAllowInsecureProtocols(Boolean tlsAllowInsecureProtocols)
Whether to allow TLSv1 and TLSv1.1 in the effective TLS protocols list. Both are deprecated by RFC 8996 and vulnerable to BEAST and POODLE. The default is true for backwards compatibility; set to false to opt into a hardened profile that filters TLSv1 and TLSv1.1 out oftlsProtocols.- Parameters:
tlsAllowInsecureProtocols- if true, TLSv1 and TLSv1.1 are honoured; if false, they are stripped
-
dynamicallyCreateCertificateAuthorityCertificate
public Boolean dynamicallyCreateCertificateAuthorityCertificate()
-
dynamicallyCreateCertificateAuthorityCertificate
public Configuration dynamicallyCreateCertificateAuthorityCertificate(Boolean dynamicallyCreateCertificateAuthorityCertificate)
Enable dynamic creation of Certificate Authority X509 certificate and private key.Enable this property to increase the security of trusting the MockServer Certificate Authority X509 by ensuring a local dynamic value is used instead of the public value in the MockServer git repo.
These PEM files will be created and saved in the directory specified with configuration property directoryToSaveDynamicSSLCertificate.
- Parameters:
dynamicallyCreateCertificateAuthorityCertificate- dynamic creation of Certificate Authority X509 certificate and private key.
-
directoryToSaveDynamicSSLCertificate
public String directoryToSaveDynamicSSLCertificate()
-
directoryToSaveDynamicSSLCertificate
public Configuration directoryToSaveDynamicSSLCertificate(String directoryToSaveDynamicSSLCertificate)
Directory used to save the dynamically generated Certificate Authority X.509 Certificate and Private Key.- Parameters:
directoryToSaveDynamicSSLCertificate- directory to save Certificate Authority X.509 Certificate and Private Key
-
preventCertificateDynamicUpdate
public Boolean preventCertificateDynamicUpdate()
-
preventCertificateDynamicUpdate
public Configuration preventCertificateDynamicUpdate(Boolean preventCertificateDynamicUpdate)
Prevent certificates from dynamically updating when domain list changes- Parameters:
preventCertificateDynamicUpdate- prevent certificates from dynamically updating when domain list changes
-
sslCertificateDomainName
public String sslCertificateDomainName()
-
sslCertificateDomainName
public Configuration sslCertificateDomainName(String sslCertificateDomainName)
The domain name for auto-generate TLS certificatesThe default is "localhost"
- Parameters:
sslCertificateDomainName- domain name for auto-generate TLS certificates
-
sslSubjectAlternativeNameDomains
public Configuration sslSubjectAlternativeNameDomains(String... sslSubjectAlternativeNameDomains)
The Subject Alternative Name (SAN) domain names for auto-generate TLS certificatesThe default is "localhost"
- Parameters:
sslSubjectAlternativeNameDomains- Subject Alternative Name (SAN) domain names for auto-generate TLS certificates
-
sslSubjectAlternativeNameDomains
public Configuration sslSubjectAlternativeNameDomains(Set<String> sslSubjectAlternativeNameDomains)
The Subject Alternative Name (SAN) domain names for auto-generate TLS certificatesThe default is "localhost"
- Parameters:
sslSubjectAlternativeNameDomains- Subject Alternative Name (SAN) domain names for auto-generate TLS certificates
-
sslSubjectAlternativeNameIps
public Configuration sslSubjectAlternativeNameIps(String... sslSubjectAlternativeNameIps)
The Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificates
The default is 127.0.0.1, 0.0.0.0
- Parameters:
sslSubjectAlternativeNameIps- Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificates
-
sslSubjectAlternativeNameIps
public Configuration sslSubjectAlternativeNameIps(Set<String> sslSubjectAlternativeNameIps)
The Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificates
The default is 127.0.0.1, 0.0.0.0
- Parameters:
sslSubjectAlternativeNameIps- Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificates
-
certificateAuthorityPrivateKey
public String certificateAuthorityPrivateKey()
-
certificateAuthorityPrivateKey
public Configuration certificateAuthorityPrivateKey(String certificateAuthorityPrivateKey)
File system path or classpath location of custom Private Key for Certificate Authority for TLS, the private key must be a PKCS#8 or PKCS#1 PEM file and must match the certificateAuthorityCertificate To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocryptThe path is not file-existence-checked here because dynamic CA generation (
dynamicallyCreateCertificateAuthorityCertificate) sets this to the destination path before the file is written. Typos in user-supplied paths are surfaced byCertificateConfigurationValidatorat TLS-init time.- Parameters:
certificateAuthorityPrivateKey- location of the PEM file containing the certificate authority private key
-
certificateAuthorityCertificate
public String certificateAuthorityCertificate()
-
certificateAuthorityCertificate
public Configuration certificateAuthorityCertificate(String certificateAuthorityCertificate)
File system path or classpath location of custom X.509 Certificate for Certificate Authority for TLS, the certificate must be a X509 PEM file and must match the certificateAuthorityPrivateKeyThe path is not file-existence-checked here because dynamic CA generation (
dynamicallyCreateCertificateAuthorityCertificate) sets this to the destination path before the file is written. Typos in user-supplied paths are surfaced byCertificateConfigurationValidatorat TLS-init time.- Parameters:
certificateAuthorityCertificate- location of the PEM file containing the certificate authority X509 certificate
-
privateKeyPath
public String privateKeyPath()
-
privateKeyPath
public Configuration privateKeyPath(String privateKeyPath)
File system path or classpath location of a fixed custom private key for TLS connections into MockServer.The private key must be a PKCS#8 or PKCS#1 PEM file and must be the private key corresponding to the x509CertificatePath X509 (public key) configuration. The certificateAuthorityCertificate configuration must be the Certificate Authority for the corresponding X509 certificate (i.e. able to valid its signature), see: x509CertificatePath.
To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
This configuration will be ignored unless x509CertificatePath is also set.
The path is not file-existence-checked here because dynamic SSL certificate generation sets this to the destination path before the file is written. Typos in user-supplied paths are surfaced by
CertificateConfigurationValidatorat TLS-init time.- Parameters:
privateKeyPath- location of the PKCS#8 PEM file containing the private key
-
x509CertificatePath
public String x509CertificatePath()
-
x509CertificatePath
public Configuration x509CertificatePath(String x509CertificatePath)
File system path or classpath location of a fixed custom X.509 Certificate for TLS connections into MockServer.The certificate must be a X509 PEM file and must be the public key corresponding to the privateKeyPath private key configuration. The certificateAuthorityCertificate configuration must be the Certificate Authority for this certificate (i.e. able to valid its signature).
This configuration will be ignored unless privateKeyPath is also set.
The path is not file-existence-checked here because dynamic SSL certificate generation sets this to the destination path before the file is written. Typos in user-supplied paths are surfaced by
CertificateConfigurationValidatorat TLS-init time.- Parameters:
x509CertificatePath- location of the PEM file containing the X509 certificate
-
tlsMutualAuthenticationRequired
public Boolean tlsMutualAuthenticationRequired()
-
tlsMutualAuthenticationRequired
public Configuration tlsMutualAuthenticationRequired(Boolean tlsMutualAuthenticationRequired)
Require mTLS (also called client authentication and two-way TLS) for all TLS connections / HTTPS requests to MockServer- Parameters:
tlsMutualAuthenticationRequired- TLS mutual authentication
-
tlsMutualAuthenticationCertificateChain
public String tlsMutualAuthenticationCertificateChain()
-
tlsMutualAuthenticationCertificateChain
public Configuration tlsMutualAuthenticationCertificateChain(String tlsMutualAuthenticationCertificateChain)
File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.This certificate chain will be used if MockServer performs mTLS (client authentication) for inbound TLS connections because tlsMutualAuthenticationRequired is enabled
- Parameters:
tlsMutualAuthenticationCertificateChain- File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for Trusting (i.e. signature verification of) Client X.509 Certificates
-
forwardProxyTLSX509CertificatesTrustManagerType
public ForwardProxyTLSX509CertificatesTrustManager forwardProxyTLSX509CertificatesTrustManagerType()
-
forwardProxyTLSX509CertificatesTrustManagerType
public Configuration forwardProxyTLSX509CertificatesTrustManagerType(ForwardProxyTLSX509CertificatesTrustManager forwardProxyTLSX509CertificatesTrustManagerType)
Configure trusted set of certificates for forwarded or proxied requests.MockServer will only be able to establish a TLS connection to endpoints that have a trusted X509 certificate according to the trust manager type, as follows:
ALL - Insecure will trust all X509 certificates and not perform host name verification. JVM - Will trust all X509 certificates trust by the JVM. CUSTOM - Will trust all X509 certificates specified in forwardProxyTLSCustomTrustX509Certificates configuration value.
- Parameters:
forwardProxyTLSX509CertificatesTrustManagerType- trusted set of certificates for forwarded or proxied requests, allowed values: ALL, JVM, CUSTOM.
-
forwardProxyBlockPrivateNetworks
public Boolean forwardProxyBlockPrivateNetworks()
-
forwardProxyBlockPrivateNetworks
public Configuration forwardProxyBlockPrivateNetworks(Boolean forwardProxyBlockPrivateNetworks)
When set to true, MockServer rejects forward and proxy targets that resolve to loopback, link-local, RFC 1918 private, or cloud metadata addresses (such as 169.254.169.254), blocking server-side request forgery (SSRF) via malicious expectations.The default is false so that the common case of forwarding to localhost / Docker bridge / Kubernetes service IPs continues to work. Enable this in hardened or multi-tenant deployments where untrusted callers can register expectations.
- Parameters:
forwardProxyBlockPrivateNetworks- if true, block forwarding to private or metadata addresses
-
forwardProxyTLSCustomTrustX509Certificates
public String forwardProxyTLSCustomTrustX509Certificates()
-
forwardProxyTLSCustomTrustX509Certificates
public Configuration forwardProxyTLSCustomTrustX509Certificates(String forwardProxyTLSCustomTrustX509Certificates)
File system path or classpath location of custom file for trusted X509 Certificate Authority roots for forwarded or proxied requests, the certificate chain must be a X509 PEM file.MockServer will only be able to establish a TLS connection to endpoints that have an X509 certificate chain that is signed by one of the provided custom certificates, i.e. where a path can be established from the endpoints X509 certificate to one or more of the custom X509 certificates provided.
- Parameters:
forwardProxyTLSCustomTrustX509Certificates- custom set of trusted X509 certificate authority roots for forwarded or proxied requests in PEM format.
-
forwardProxyPrivateKey
public String forwardProxyPrivateKey()
-
forwardProxyPrivateKey
public Configuration forwardProxyPrivateKey(String forwardProxyPrivateKey)
File system path or classpath location of custom Private Key for proxied TLS connections out of MockServer, the private key must be a PKCS#8 or PKCS#1 PEM fileTo convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
This private key will be used if MockServer needs to perform mTLS (client authentication) for outbound TLS connections.
- Parameters:
forwardProxyPrivateKey- location of the PEM file containing the private key
-
forwardProxyCertificateChain
public String forwardProxyCertificateChain()
-
forwardProxyCertificateChain
public Configuration forwardProxyCertificateChain(String forwardProxyCertificateChain)
File system path or classpath location of custom mTLS (TLS client authentication) X.509 Certificate Chain for Trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.This certificate chain will be used if MockServer needs to perform mTLS (client authentication) for outbound TLS connections.
- Parameters:
forwardProxyCertificateChain- location of the PEM file containing the certificate chain
-
addSubjectAlternativeName
public void addSubjectAlternativeName(String host)
-
addSslSubjectAlternativeNameIps
public void addSslSubjectAlternativeNameIps(String... additionalSubjectAlternativeNameIps)
-
clearSslSubjectAlternativeNameIps
public void clearSslSubjectAlternativeNameIps()
-
addSslSubjectAlternativeNameDomains
public void addSslSubjectAlternativeNameDomains(String... additionalSubjectAlternativeNameDomains)
-
clearSslSubjectAlternativeNameDomains
public void clearSslSubjectAlternativeNameDomains()
-
ringBufferSize
public int ringBufferSize()
-
-