blob: adea1afca5e376872f1063bcb59a9f37b8a7286f [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>HttpServer.Builder (Apache Calcite Avatica API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HttpServer.Builder (Apache Calcite Avatica API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpServer.Builder.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.avatica.server</a></div>
<h2 title="Class HttpServer.Builder" class="title">Class HttpServer.Builder&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.avatica.server.HttpServer.Builder&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - element type</dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="HttpServer.html" title="class in org.apache.calcite.avatica.server">HttpServer</a></dd>
</dl>
<hr>
<pre>public static class <span class="typeNameLabel">HttpServer.Builder&lt;T&gt;</span>
extends java.lang.Object</pre>
<div class="block">Builder class for creating instances of <a href="HttpServer.html" title="class in org.apache.calcite.avatica.server"><code>HttpServer</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="HttpServer.html" title="class in org.apache.calcite.avatica.server">HttpServer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
<td class="colLast">
<div class="block">Builds the HttpServer instance from <code>this</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected org.eclipse.jetty.util.ssl.SslContextFactory</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildSSLContextFactory()">buildSSLContextFactory</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBuilder()">newBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a typed Builder for Server customization.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withAutomaticLogin(java.io.File)">withAutomaticLogin</a></span>&#8203;(java.io.File&nbsp;keytab)</code></th>
<td class="colLast">
<div class="block">Sets a keytab to be used to perform a Kerberos login automatically (without the use of JAAS).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withBasicAuthentication(java.lang.String,java.lang.String%5B%5D)">withBasicAuthentication</a></span>&#8203;(java.lang.String&nbsp;properties,
java.lang.String[]&nbsp;allowedRoles)</code></th>
<td class="colLast">
<div class="block">Configures the server to use HTTP Basic authentication.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withCustomAuthentication(org.apache.calcite.avatica.server.AvaticaServerConfiguration)">withCustomAuthentication</a></span>&#8203;(<a href="AvaticaServerConfiguration.html" title="interface in org.apache.calcite.avatica.server">AvaticaServerConfiguration</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Configures the server to use CUSTOM authentication mechanism, which can allow users to
combine benefits of multiple auth methods.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withDigestAuthentication(java.lang.String,java.lang.String%5B%5D)">withDigestAuthentication</a></span>&#8203;(java.lang.String&nbsp;properties,
java.lang.String[]&nbsp;allowedRoles)</code></th>
<td class="colLast">
<div class="block">Configures the server to use HTTP Digest authentication.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withHandler(org.apache.calcite.avatica.remote.Service,org.apache.calcite.avatica.remote.Driver.Serialization)">withHandler</a></span>&#8203;(<a href="../remote/Service.html" title="interface in org.apache.calcite.avatica.remote">Service</a>&nbsp;service,
<a href="../remote/Driver.Serialization.html" title="enum in org.apache.calcite.avatica.remote">Driver.Serialization</a>&nbsp;serialization)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../remote/Service.html" title="interface in org.apache.calcite.avatica.remote"><code>Service</code></a> and <a href="../remote/Driver.Serialization.html" title="enum in org.apache.calcite.avatica.remote"><code>Driver.Serialization</code></a> information necessary to construct
the appropriate <a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server"><code>AvaticaHandler</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withHandler(org.apache.calcite.avatica.server.AvaticaHandler)">withHandler</a></span>&#8203;(<a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server">AvaticaHandler</a>&nbsp;handler)</code></th>
<td class="colLast">
<div class="block">Sets an <a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server"><code>AvaticaHandler</code></a> directly on the builder.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withImpersonation(org.apache.calcite.avatica.server.DoAsRemoteUserCallback)">withImpersonation</a></span>&#8203;(<a href="DoAsRemoteUserCallback.html" title="interface in org.apache.calcite.avatica.server">DoAsRemoteUserCallback</a>&nbsp;remoteUserCallback)</code></th>
<td class="colLast">
<div class="block">Sets a callback implementation to defer the logic on how to run an action as a given user and
if the action should be permitted for that user.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withMaxHeaderSize(int)">withMaxHeaderSize</a></span>&#8203;(int&nbsp;maxHeaderSize)</code></th>
<td class="colLast">
<div class="block">Configures the maximum size, in bytes, of an HTTP header that the server will read.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withMetricsConfiguration(org.apache.calcite.avatica.metrics.MetricsSystemConfiguration)">withMetricsConfiguration</a></span>&#8203;(<a href="../metrics/MetricsSystemConfiguration.html" title="interface in org.apache.calcite.avatica.metrics">MetricsSystemConfiguration</a>&lt;?&gt;&nbsp;metricsConfig)</code></th>
<td class="colLast">
<div class="block">Sets the given configuration to enable metrics collection in the server.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withPort(int)">withPort</a></span>&#8203;(int&nbsp;port)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withRemoteUserExtractor(org.apache.calcite.avatica.server.RemoteUserExtractor)">withRemoteUserExtractor</a></span>&#8203;(<a href="RemoteUserExtractor.html" title="interface in org.apache.calcite.avatica.server">RemoteUserExtractor</a>&nbsp;remoteUserExtractor)</code></th>
<td class="colLast">
<div class="block">Sets a callback implementation to defer the logic on how to use the right remoteUserExtractor
to extract remote user.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withServerCustomizers(java.util.List,java.lang.Class)">withServerCustomizers</a></span>&#8203;(java.util.List&lt;<a href="ServerCustomizer.html" title="interface in org.apache.calcite.avatica.server">ServerCustomizer</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&gt;&nbsp;serverCustomizers,
java.lang.Class&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Adds customizers to configure a Server before startup.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSpnego(java.lang.String)">withSpnego</a></span>&#8203;(java.lang.String&nbsp;principal)</code></th>
<td class="colLast">
<div class="block">Configures the server to use SPNEGO authentication.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSpnego(java.lang.String,java.lang.String)">withSpnego</a></span>&#8203;(java.lang.String&nbsp;principal,
java.lang.String&nbsp;realm)</code></th>
<td class="colLast">
<div class="block">Configures the server to use SPNEGO authentication.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSpnego(java.lang.String,java.lang.String%5B%5D)">withSpnego</a></span>&#8203;(java.lang.String&nbsp;principal,
java.lang.String[]&nbsp;additionalAllowedRealms)</code></th>
<td class="colLast">
<div class="block">Configures the server to use SPNEGO authentication.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSpnego(java.lang.String,java.lang.String,java.lang.String%5B%5D)">withSpnego</a></span>&#8203;(java.lang.String&nbsp;principal,
java.lang.String&nbsp;realm,
java.lang.String[]&nbsp;additionalAllowedRealms)</code></th>
<td class="colLast">
<div class="block">Configures the server to use SPNEGO authentication.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withTLS(java.io.File,java.lang.String,java.io.File,java.lang.String)">withTLS</a></span>&#8203;(java.io.File&nbsp;keystore,
java.lang.String&nbsp;keystorePassword,
java.io.File&nbsp;truststore,
java.lang.String&nbsp;truststorePassword)</code></th>
<td class="colLast">
<div class="block">Configures the server to use TLS for wire encryption.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="newBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newBuilder</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;T&gt;&nbsp;newBuilder()</pre>
<div class="block">Creates a typed Builder for Server customization.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of HttpServer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A typed Builder</dd>
</dl>
</li>
</ul>
<a id="withPort(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withPort</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withPort&#8203;(int&nbsp;port)</pre>
</li>
</ul>
<a id="withHandler(org.apache.calcite.avatica.remote.Service,org.apache.calcite.avatica.remote.Driver.Serialization)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withHandler&#8203;(<a href="../remote/Service.html" title="interface in org.apache.calcite.avatica.remote">Service</a>&nbsp;service,
<a href="../remote/Driver.Serialization.html" title="enum in org.apache.calcite.avatica.remote">Driver.Serialization</a>&nbsp;serialization)</pre>
<div class="block">Sets the <a href="../remote/Service.html" title="interface in org.apache.calcite.avatica.remote"><code>Service</code></a> and <a href="../remote/Driver.Serialization.html" title="enum in org.apache.calcite.avatica.remote"><code>Driver.Serialization</code></a> information necessary to construct
the appropriate <a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server"><code>AvaticaHandler</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - The Avatica service</dd>
<dd><code>serialization</code> - The serialization method</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withHandler(org.apache.calcite.avatica.server.AvaticaHandler)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withHandler&#8203;(<a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server">AvaticaHandler</a>&nbsp;handler)</pre>
<div class="block">Sets an <a href="AvaticaHandler.html" title="interface in org.apache.calcite.avatica.server"><code>AvaticaHandler</code></a> directly on the builder. Most users will not want to use
this method and should instead use <a href="#withHandler(org.apache.calcite.avatica.remote.Service,org.apache.calcite.avatica.remote.Driver.Serialization)"><code>withHandler(Service, Serialization)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - The handler</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withMetricsConfiguration(org.apache.calcite.avatica.metrics.MetricsSystemConfiguration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withMetricsConfiguration</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withMetricsConfiguration&#8203;(<a href="../metrics/MetricsSystemConfiguration.html" title="interface in org.apache.calcite.avatica.metrics">MetricsSystemConfiguration</a>&lt;?&gt;&nbsp;metricsConfig)</pre>
<div class="block">Sets the given configuration to enable metrics collection in the server.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metricsConfig</code> - Configuration object for metrics.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withSpnego(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSpnego</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withSpnego&#8203;(java.lang.String&nbsp;principal)</pre>
<div class="block">Configures the server to use SPNEGO authentication. This method requires that the
<code>principal</code> contains the Kerberos realm. Invoking this method overrides any
previous call which configures authentication.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>principal</code> - A kerberos principal with the realm required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withSpnego(java.lang.String,java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSpnego</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withSpnego&#8203;(java.lang.String&nbsp;principal,
java.lang.String[]&nbsp;additionalAllowedRealms)</pre>
<div class="block">Configures the server to use SPNEGO authentication. This method requires that the
<code>principal</code> contains the Kerberos realm. Invoking this method overrides any
previous call which configures authentication. Invoking this method overrides any previous
call which configures authentication. By default, only principals from the server's realm are
permitted, but additional realms can be allowed using <code>additionalAllowedRealms</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>principal</code> - A kerberos principal with the realm required.</dd>
<dd><code>additionalAllowedRealms</code> - Any additional realms, other than the server's realm, which
should be allowed to authenticate against the server. Can be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withSpnego(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSpnego</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withSpnego&#8203;(java.lang.String&nbsp;principal,
java.lang.String&nbsp;realm)</pre>
<div class="block">Configures the server to use SPNEGO authentication. It is required that callers are logged
in via Kerberos already or have provided the necessary configuration to automatically log
in via JAAS (using the <code>java.security.auth.login.config</code> system property) before
starting the <a href="HttpServer.html" title="class in org.apache.calcite.avatica.server"><code>HttpServer</code></a>. Invoking this method overrides any previous call which
configures authentication.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>principal</code> - The kerberos principal</dd>
<dd><code>realm</code> - The kerberos realm</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withSpnego(java.lang.String,java.lang.String,java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSpnego</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withSpnego&#8203;(java.lang.String&nbsp;principal,
java.lang.String&nbsp;realm,
java.lang.String[]&nbsp;additionalAllowedRealms)</pre>
<div class="block">Configures the server to use SPNEGO authentication. It is required that callers are logged
in via Kerberos already or have provided the necessary configuration to automatically log
in via JAAS (using the <code>java.security.auth.login.config</code> system property) before
starting the <a href="HttpServer.html" title="class in org.apache.calcite.avatica.server"><code>HttpServer</code></a>. Invoking this method overrides any previous call which
configures authentication. By default, only principals from the server's realm are permitted,
but additional realms can be allowed using <code>additionalAllowedRealms</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>principal</code> - The kerberos principal</dd>
<dd><code>realm</code> - The kerberos realm</dd>
<dd><code>additionalAllowedRealms</code> - Any additional realms, other than the server's realm, which
should be allowed to authenticate against the server. Can be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withAutomaticLogin(java.io.File)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withAutomaticLogin</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withAutomaticLogin&#8203;(java.io.File&nbsp;keytab)</pre>
<div class="block">Sets a keytab to be used to perform a Kerberos login automatically (without the use of JAAS).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keytab</code> - A KeyTab file for the server's login.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withImpersonation(org.apache.calcite.avatica.server.DoAsRemoteUserCallback)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withImpersonation</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withImpersonation&#8203;(<a href="DoAsRemoteUserCallback.html" title="interface in org.apache.calcite.avatica.server">DoAsRemoteUserCallback</a>&nbsp;remoteUserCallback)</pre>
<div class="block">Sets a callback implementation to defer the logic on how to run an action as a given user and
if the action should be permitted for that user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>remoteUserCallback</code> - User-provided implementation of the callback</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withRemoteUserExtractor(org.apache.calcite.avatica.server.RemoteUserExtractor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withRemoteUserExtractor</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&nbsp;withRemoteUserExtractor&#8203;(<a href="RemoteUserExtractor.html" title="interface in org.apache.calcite.avatica.server">RemoteUserExtractor</a>&nbsp;remoteUserExtractor)</pre>
<div class="block">Sets a callback implementation to defer the logic on how to use the right remoteUserExtractor
to extract remote user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>remoteUserExtractor</code> - User-provided remoteUserExtractor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withBasicAuthentication(java.lang.String,java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withBasicAuthentication</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withBasicAuthentication&#8203;(java.lang.String&nbsp;properties,
java.lang.String[]&nbsp;allowedRoles)</pre>
<div class="block">Configures the server to use HTTP Basic authentication. The <code>properties</code> must
be in a form consumable by Jetty. Invoking this method overrides any previous call which
configures authentication. This authentication is supplementary to the JDBC-provided user
authentication interfaces and should only be used when those interfaces are not used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - Location of a properties file parseable by Jetty which contains users and
passwords.</dd>
<dd><code>allowedRoles</code> - An array of allowed roles in the properties file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withDigestAuthentication(java.lang.String,java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withDigestAuthentication</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withDigestAuthentication&#8203;(java.lang.String&nbsp;properties,
java.lang.String[]&nbsp;allowedRoles)</pre>
<div class="block">Configures the server to use HTTP Digest authentication. The <code>properties</code> must
be in a form consumable by Jetty. Invoking this method overrides any previous call which
configures authentication. This authentication is supplementary to the JDBC-provided user
authentication interfaces and should only be used when those interfaces are not used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - Location of a properties file parseable by Jetty which contains users and
passwords.</dd>
<dd><code>allowedRoles</code> - An array of allowed roles in the properties file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withCustomAuthentication(org.apache.calcite.avatica.server.AvaticaServerConfiguration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withCustomAuthentication</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withCustomAuthentication&#8203;(<a href="AvaticaServerConfiguration.html" title="interface in org.apache.calcite.avatica.server">AvaticaServerConfiguration</a>&nbsp;config)</pre>
<div class="block">Configures the server to use CUSTOM authentication mechanism, which can allow users to
combine benefits of multiple auth methods. See <code>CustomAuthHttpServerTest</code> for
examples on how to use it.
Note: Default ServerConnectors and Handlers will NOT be used.
Customize them directly using instances <code><a href="ServerCustomizer.html" title="interface in org.apache.calcite.avatica.server"><code>ServerCustomizer</code></a></code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - AvaticaServerConfiguration implementation that configures various details
about the authentication mechanism for <code><a href="HttpServer.html" title="class in org.apache.calcite.avatica.server"><code>HttpServer</code></a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withTLS(java.io.File,java.lang.String,java.io.File,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withTLS</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withTLS&#8203;(java.io.File&nbsp;keystore,
java.lang.String&nbsp;keystorePassword,
java.io.File&nbsp;truststore,
java.lang.String&nbsp;truststorePassword)</pre>
<div class="block">Configures the server to use TLS for wire encryption.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keystore</code> - The server's keystore</dd>
<dd><code>keystorePassword</code> - The keystore's password</dd>
<dd><code>truststore</code> - The truststore containing the key used to generate the server's key</dd>
<dd><code>truststorePassword</code> - The truststore's password</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withServerCustomizers(java.util.List,java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withServerCustomizers</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withServerCustomizers&#8203;(java.util.List&lt;<a href="ServerCustomizer.html" title="interface in org.apache.calcite.avatica.server">ServerCustomizer</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&gt;&nbsp;serverCustomizers,
java.lang.Class&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;clazz)</pre>
<div class="block">Adds customizers to configure a Server before startup.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serverCustomizers</code> - The customizers to use</dd>
<dd><code>clazz</code> - The type of server to customize</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="withMaxHeaderSize(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withMaxHeaderSize</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.Builder.html" title="class in org.apache.calcite.avatica.server">HttpServer.Builder</a>&lt;<a href="HttpServer.Builder.html" title="type parameter in HttpServer.Builder">T</a>&gt;&nbsp;withMaxHeaderSize&#8203;(int&nbsp;maxHeaderSize)</pre>
<div class="block">Configures the maximum size, in bytes, of an HTTP header that the server will read.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxHeaderSize</code> - Maximums HTTP header size in bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpServer.html" title="class in org.apache.calcite.avatica.server">HttpServer</a>&nbsp;build()</pre>
<div class="block">Builds the HttpServer instance from <code>this</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An HttpServer.</dd>
</dl>
</li>
</ul>
<a id="buildSSLContextFactory()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>buildSSLContextFactory</h4>
<pre class="methodSignature">protected&nbsp;org.eclipse.jetty.util.ssl.SslContextFactory&nbsp;buildSSLContextFactory()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpServer.Builder.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>