Class MockServer.Builder

java.lang.Object
io.karatelabs.core.MockServer.Builder
Enclosing class:
MockServer

public static class MockServer.Builder extends Object
Builder for creating MockServer instances.
  • Method Details

    • feature

      public MockServer.Builder feature(String path)
      Add a feature file by path.
    • feature

      public MockServer.Builder feature(Feature feature)
      Add a parsed Feature.
    • featureString

      public MockServer.Builder featureString(String featureContent)
      Add a feature from inline string content.
    • port

      public MockServer.Builder port(int port)
      Set the port to listen on. 0 = dynamic port.
    • arg

      public MockServer.Builder arg(Map<String,Object> args)
      Set initial arguments (variables) for the mock.
    • pathPrefix

      public MockServer.Builder pathPrefix(String prefix)
      Set a path prefix to strip from incoming requests.
    • ssl

      public MockServer.Builder ssl(boolean ssl)
      Enable SSL/TLS.
    • certPath

      public MockServer.Builder certPath(String certPath)
      Set the SSL certificate file path (PEM format).
    • keyPath

      public MockServer.Builder keyPath(String keyPath)
      Set the SSL private key file path (PEM format).
    • sslContext

      public MockServer.Builder sslContext(io.netty.handler.ssl.SslContext sslContext)
      Set a custom Netty SslContext (e.g. for mTLS with client auth). When set, certPath/keyPath are ignored.
    • watch

      public MockServer.Builder watch(boolean watch)
      Enable watch mode for hot-reloading feature files when they change. The server will check file modification times before each request and reload features if any have changed.

      Note: Watch mode only works for file-based features, not classpath resources in JARs.

    • javaBridgeEnabled

      public MockServer.Builder javaBridgeEnabled(boolean javaBridgeEnabled)
      Enable Java interop (Java.type(...)) for mock features. OFF by default: a mock that assigns request-derived data (request/requestHeaders/requestParams) would otherwise evaluate attacker-controlled embedded expressions with full Java access, which is a remote code execution risk. Only enable for mocks that are not exposed to untrusted clients and genuinely need Java interop. Individual features can also opt in with configure javaBridgeEnabled = true.
    • requestExpressionsEnabled

      public MockServer.Builder requestExpressionsEnabled(boolean requestExpressionsEnabled)
      Evaluate embedded #(...) expressions found in request-derived data (request/requestHeaders/requestParams). OFF by default: attacker-controlled request data is treated as inert data, not Karate code. Only enable for trusted mocks that intentionally template off request content. Individual features can also opt in with configure requestExpressionsEnabled = true.
    • start

      public MockServer start()
      Start the mock server.