You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

381 lines
19 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Wed Nov 30 19:45:04 CET 2022 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>StrictHostnameVerifier (Apache HttpComponents Client 4.5.14 API)</title>
<meta name="date" content="2022-11-30">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="StrictHostnameVerifier (Apache HttpComponents Client 4.5.14 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/StrictHostnameVerifier.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">
<li><a href="../../../../../org/apache/http/conn/ssl/SSLSocketFactory.html" title="class in org.apache.http.conn.ssl"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/http/conn/ssl/TrustAllStrategy.html" title="class in org.apache.http.conn.ssl"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/http/conn/ssl/StrictHostnameVerifier.html" target="_top">Frames</a></li>
<li><a href="StrictHostnameVerifier.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&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><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.http.conn.ssl</div>
<h2 title="Class StrictHostnameVerifier" class="title">Class StrictHostnameVerifier</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html" title="class in org.apache.http.conn.ssl">org.apache.http.conn.ssl.AbstractVerifier</a></li>
<li>
<ul class="inheritance">
<li>org.apache.http.conn.ssl.StrictHostnameVerifier</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/6/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl">HostnameVerifier</a>, <a href="../../../../../org/apache/http/conn/ssl/X509HostnameVerifier.html" title="interface in org.apache.http.conn.ssl">X509HostnameVerifier</a></dd>
</dl>
<hr>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>(4.4) Use <a href="../../../../../org/apache/http/conn/ssl/DefaultHostnameVerifier.html" title="class in org.apache.http.conn.ssl"><code>DefaultHostnameVerifier</code></a></i></div>
</div>
<br>
<pre>@Contract(threading=IMMUTABLE)
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public class <span class="strong">StrictHostnameVerifier</span>
extends <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html" title="class in org.apache.http.conn.ssl">AbstractVerifier</a></pre>
<div class="block">The Strict HostnameVerifier works the same way as Sun Java 1.4, Sun
Java 5, Sun Java 6. It's also pretty close to IE6. This implementation
appears to be compliant with RFC 2818 for dealing with wildcards.
<p>
The hostname must match either the first CN, or any of the subject-alts.
A wildcard can occur in the CN, and in any of the subject-alts. The
one divergence from IE6 is how we only check the first CN. IE6 allows
a match against any of the CNs present. We decided to follow in
Sun Java 1.4's footsteps and only check the first CN. (If you need
to check all the CN's, feel free to write your own implementation!).
</p>
<p>
A wildcard such as "*.foo.com" matches only subdomains in the same
level, for example "a.foo.com". It does not match deeper subdomains
such as "a.b.foo.com".
</p></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>4.0</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html" title="class in org.apache.http.conn.ssl">StrictHostnameVerifier</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html#INSTANCE">INSTANCE</a></strong></code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html#StrictHostnameVerifier()">StrictHostnameVerifier</a></strong>()</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html#toString()">toString</a></strong>()</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html#verify(java.lang.String,%20java.lang.String[],%20java.lang.String[])">verify</a></strong>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;host,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;cns,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;subjectAlts)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
<div class="block">Checks to see if the supplied hostname matches any of the supplied CNs
or "DNS" Subject-Alts.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.http.conn.ssl.AbstractVerifier">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.http.conn.ssl.<a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html" title="class in org.apache.http.conn.ssl">AbstractVerifier</a></h3>
<code><a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#acceptableCountryWildcard(java.lang.String)">acceptableCountryWildcard</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#countDots(java.lang.String)">countDots</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#getCNs(java.security.cert.X509Certificate)">getCNs</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#getDNSSubjectAlts(java.security.cert.X509Certificate)">getDNSSubjectAlts</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#verify(java.lang.String,%20javax.net.ssl.SSLSession)">verify</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#verify(java.lang.String,%20javax.net.ssl.SSLSocket)">verify</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#verify(java.lang.String,%20java.lang.String[],%20java.lang.String[],%20boolean)">verify</a>, <a href="../../../../../org/apache/http/conn/ssl/AbstractVerifier.html#verify(java.lang.String,%20java.security.cert.X509Certificate)">verify</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="INSTANCE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>INSTANCE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/http/conn/ssl/StrictHostnameVerifier.html" title="class in org.apache.http.conn.ssl">StrictHostnameVerifier</a> INSTANCE</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="StrictHostnameVerifier()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>StrictHostnameVerifier</h4>
<pre>public&nbsp;StrictHostnameVerifier()</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="verify(java.lang.String, java.lang.String[], java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verify</h4>
<pre>public final&nbsp;void&nbsp;verify(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;host,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;cns,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;subjectAlts)
throws <a href="https://docs.oracle.com/javase/6/docs/api/javax/net/ssl/SSLException.html?is-external=true" title="class or interface in javax.net.ssl">SSLException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/http/conn/ssl/X509HostnameVerifier.html#verify(java.lang.String,%20java.lang.String[],%20java.lang.String[])">X509HostnameVerifier</a></code></strong></div>
<div class="block">Checks to see if the supplied hostname matches any of the supplied CNs
or "DNS" Subject-Alts. Most implementations only look at the first CN,
and ignore any additional CNs. Most implementations do look at all of
the "DNS" Subject-Alts. The CNs or Subject-Alts may contain wildcards
according to RFC 2818.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>host</code> - The hostname to verify.</dd><dd><code>cns</code> - CN fields, in order, as extracted from the X.509
certificate.</dd><dd><code>subjectAlts</code> - Subject-Alt fields of type 2 ("DNS"), as extracted
from the X.509 certificate.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/javax/net/ssl/SSLException.html?is-external=true" title="class or interface in javax.net.ssl">SSLException</a></code> - if the verification process fails.</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public final&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/StrictHostnameVerifier.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">
<li><a href="../../../../../org/apache/http/conn/ssl/SSLSocketFactory.html" title="class in org.apache.http.conn.ssl"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/http/conn/ssl/TrustAllStrategy.html" title="class in org.apache.http.conn.ssl"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/http/conn/ssl/StrictHostnameVerifier.html" target="_top">Frames</a></li>
<li><a href="StrictHostnameVerifier.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&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><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1999&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>