[Git][java-team/httpcomponents-client][upstream] New upstream version 4.5.12

Emmanuel Bourg gitlab at salsa.debian.org
Thu Sep 3 13:38:37 BST 2020



Emmanuel Bourg pushed to branch upstream at Debian Java Maintainers / httpcomponents-client


Commits:
95770a42 by Emmanuel Bourg at 2020-09-03T14:30:16+02:00
New upstream version 4.5.12
- - - - -


18 changed files:

- RELEASE_NOTES.txt
- fluent-hc/pom.xml
- httpclient-cache/pom.xml
- httpclient-osgi/pom.xml
- httpclient-win/pom.xml
- httpclient/pom.xml
- httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java
- httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java
- httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
- httpclient/src/main/java/org/apache/http/impl/execchain/RedirectExec.java
- httpclient/src/main/resources/mozilla/public-suffix-list.txt
- httpclient/src/test/java/org/apache/http/conn/ssl/TestDefaultHostnameVerifier.java
- httpclient/src/test/java/org/apache/http/conn/util/TestPublicSuffixMatcher.java
- httpclient/src/test/java/org/apache/http/impl/client/TestDefaultRedirectStrategy.java
- httpclient/src/test/java/org/apache/http/impl/client/integration/TestRedirects.java
- httpclient/src/test/resources/suffixlistmatcher.txt
- httpmime/pom.xml
- pom.xml


Changes:

=====================================
RELEASE_NOTES.txt
=====================================
@@ -1,3 +1,27 @@
+Release 4.5.12
+-------------------
+
+This is a maintenance release that fixes a regression introduced by the previous release
+that caused rejection of ceritificates with non-standard domains.
+
+Changelog:
+-------------------
+
+* HTTPCLIENT-2053: Add SC_PERMANENT_REDIRECT (408) to DefaultRedirectStrategy
+  Contributed by Michael Osipov <michaelo at apache.org>
+
+* HTTPCLIENT-2052: Fixed redirection of entity enclosing requests with non-repeatable entities
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* HTTPCLIENT-2047: Fixed regression in DefaultHostnameVerifier causing rejection of certificates
+  with non-standard domains.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* Bug fix: Fixed handling of private domains by PublicSuffixMatcher
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+
+
 Release 4.5.11
 -------------------
 


=====================================
fluent-hc/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>fluent-hc</artifactId>
   <name>Apache HttpClient Fluent API</name>


=====================================
httpclient-cache/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>httpclient-cache</artifactId>
   <name>Apache HttpClient Cache</name>


=====================================
httpclient-osgi/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>httpclient-osgi</artifactId>
   <name>Apache HttpClient OSGi bundle</name>


=====================================
httpclient-win/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>httpclient-win</artifactId>
   <name>Apache HttpClient Windows features</name>


=====================================
httpclient/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>httpclient</artifactId>
   <name>Apache HttpClient</name>


=====================================
httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java
=====================================
@@ -169,7 +169,7 @@ public final class DefaultHostnameVerifier implements HostnameVerifier {
             final SubjectName subjectAlt = subjectAlts.get(i);
             if (subjectAlt.getType() == SubjectName.DNS) {
                 final String normalizedSubjectAlt = DnsUtils.normalize(subjectAlt.getValue());
-                if (matchIdentityStrict(normalizedHost, normalizedSubjectAlt, publicSuffixMatcher, DomainType.ICANN)) {
+                if (matchIdentityStrict(normalizedHost, normalizedSubjectAlt, publicSuffixMatcher)) {
                     return;
                 }
             }
@@ -182,7 +182,7 @@ public final class DefaultHostnameVerifier implements HostnameVerifier {
                  final PublicSuffixMatcher publicSuffixMatcher) throws SSLException {
         final String normalizedHost = DnsUtils.normalize(host);
         final String normalizedCn = DnsUtils.normalize(cn);
-        if (!matchIdentityStrict(normalizedHost, normalizedCn, publicSuffixMatcher, DomainType.ICANN)) {
+        if (!matchIdentityStrict(normalizedHost, normalizedCn, publicSuffixMatcher)) {
             throw new SSLPeerUnverifiedException("Certificate for <" + host + "> doesn't match " +
                     "common name of the certificate subject: " + cn);
         }


=====================================
httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java
=====================================
@@ -97,20 +97,15 @@ public final class PublicSuffixMatcher {
         }
     }
 
-    private static boolean hasEntry(final Map<String, DomainType> map, final String rule, final DomainType expectedType) {
+    private static DomainType findEntry(final Map<String, DomainType> map, final String rule) {
         if (map == null) {
-            return false;
+            return null;
         }
-        final DomainType domainType = map.get(rule);
-        return domainType == null ? false : expectedType == null || domainType.equals(expectedType);
-    }
-
-    private boolean hasRule(final String rule, final DomainType expectedType) {
-        return hasEntry(this.rules, rule, expectedType);
+        return map.get(rule);
     }
 
-    private boolean hasException(final String exception, final DomainType expectedType) {
-        return hasEntry(this.exceptions, exception, expectedType);
+    private static boolean match(final DomainType domainType, final DomainType expectedType) {
+        return domainType != null && (expectedType == null || domainType.equals(expectedType));
     }
 
     /**
@@ -147,10 +142,15 @@ public final class PublicSuffixMatcher {
         while (segment != null) {
             // An exception rule takes priority over any other matching rule.
             final String key = IDN.toUnicode(segment);
-            if (hasException(key, expectedType)) {
+            final DomainType exceptionRule = findEntry(exceptions, key);
+            if (match(exceptionRule, expectedType)) {
                 return segment;
             }
-            if (hasRule(key, expectedType)) {
+            final DomainType domainRule = findEntry(rules, key);
+            if (match(domainRule, expectedType)) {
+                if (domainRule == DomainType.PRIVATE) {
+                    return segment;
+                }
                 return result;
             }
 
@@ -158,7 +158,11 @@ public final class PublicSuffixMatcher {
             final String nextSegment = nextdot != -1 ? segment.substring(nextdot + 1) : null;
 
             if (nextSegment != null) {
-                if (hasRule("*." + IDN.toUnicode(nextSegment), expectedType)) {
+                final DomainType wildcardDomainRule = findEntry(rules, "*." + IDN.toUnicode(nextSegment));
+                if (match(wildcardDomainRule, expectedType)) {
+                    if (wildcardDomainRule == DomainType.PRIVATE) {
+                        return segment;
+                    }
                     return result;
                 }
             }
@@ -174,6 +178,7 @@ public final class PublicSuffixMatcher {
         // If we did have expectations apparently there was no match
         return null;
     }
+
     /**
      * Tests whether the given domain matches any of entry from the public suffix list.
      */


=====================================
httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
=====================================
@@ -74,6 +74,8 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
 
     private final Log log = LogFactory.getLog(getClass());
 
+    public static final int SC_PERMANENT_REDIRECT = 308;
+
     /**
      * @deprecated (4.3) use {@link org.apache.http.client.protocol.HttpClientContext#REDIRECT_LOCATIONS}.
      */
@@ -120,6 +122,7 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
             return isRedirectable(method) && locationHeader != null;
         case HttpStatus.SC_MOVED_PERMANENTLY:
         case HttpStatus.SC_TEMPORARY_REDIRECT:
+        case SC_PERMANENT_REDIRECT:
             return isRedirectable(method);
         case HttpStatus.SC_SEE_OTHER:
             return true;
@@ -225,7 +228,7 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
             return new HttpGet(uri);
         } else {
             final int status = response.getStatusLine().getStatusCode();
-            return status == HttpStatus.SC_TEMPORARY_REDIRECT
+            return (status == HttpStatus.SC_TEMPORARY_REDIRECT || status == SC_PERMANENT_REDIRECT)
                             ? RequestBuilder.copy(request).setUri(uri).build()
                             : new HttpGet(uri);
         }


=====================================
httpclient/src/main/java/org/apache/http/impl/execchain/RedirectExec.java
=====================================
@@ -112,7 +112,12 @@ public class RedirectExec implements ClientExecChain {
             try {
                 if (config.isRedirectsEnabled() &&
                         this.redirectStrategy.isRedirected(currentRequest.getOriginal(), response, context)) {
-
+                    if (!RequestEntityProxy.isRepeatable(currentRequest)) {
+                        if (log.isDebugEnabled()) {
+                            log.debug("Cannot redirect non-repeatable request");
+                        }
+                        return response;
+                    }
                     if (redirectCount >= maxRedirects) {
                         throw new RedirectException("Maximum redirects ("+ maxRedirects + ") exceeded");
                     }


=====================================
httpclient/src/main/resources/mozilla/public-suffix-list.txt
=====================================
@@ -79,7 +79,6 @@ exchange.aero
 express.aero
 federation.aero
 flight.aero
-freight.aero
 fuel.aero
 gliding.aero
 government.aero
@@ -213,6 +212,7 @@ ac.at
 co.at
 gv.at
 or.at
+sth.ac.at
 
 // au : https://en.wikipedia.org/wiki/.au
 // http://www.auda.org.au/
@@ -258,7 +258,7 @@ tas.gov.au
 vic.gov.au
 wa.gov.au
 // 4LDs
-education.tas.edu.au
+// education.tas.edu.au - Removed at the request of the Department of Education Tasmania
 schools.nsw.edu.au
 
 // aw : https://en.wikipedia.org/wiki/.aw
@@ -456,6 +456,7 @@ aju.br
 am.br
 anani.br
 aparecida.br
+app.br
 arq.br
 art.br
 ato.br
@@ -463,6 +464,7 @@ b.br
 barueri.br
 belem.br
 bhz.br
+bib.br
 bio.br
 blog.br
 bmd.br
@@ -477,14 +479,19 @@ cnt.br
 com.br
 contagem.br
 coop.br
+coz.br
 cri.br
 cuiaba.br
 curitiba.br
 def.br
+des.br
+det.br
+dev.br
 ecn.br
 eco.br
 edu.br
 emp.br
+enf.br
 eng.br
 esp.br
 etc.br
@@ -500,6 +507,7 @@ fot.br
 foz.br
 fst.br
 g12.br
+geo.br
 ggf.br
 goiania.br
 gov.br
@@ -543,6 +551,7 @@ jor.br
 jus.br
 leg.br
 lel.br
+log.br
 londrina.br
 macapa.br
 maceio.br
@@ -575,6 +584,7 @@ qsl.br
 radio.br
 rec.br
 recife.br
+rep.br
 ribeirao.br
 rio.br
 riobranco.br
@@ -585,6 +595,7 @@ santamaria.br
 santoandre.br
 saobernardo.br
 saogonca.br
+seg.br
 sjc.br
 slg.br
 slz.br
@@ -592,6 +603,7 @@ sorocaba.br
 srv.br
 taxi.br
 tc.br
+tec.br
 teo.br
 the.br
 tmp.br
@@ -719,11 +731,13 @@ gouv.ci
 *.ck
 !www.ck
 
-// cl : https://en.wikipedia.org/wiki/.cl
+// cl : https://www.nic.cl
+// Confirmed by .CL registry <hsalgado at nic.cl>
 cl
-gov.cl
-gob.cl
+aprendemas.cl
 co.cl
+gob.cl
+gov.cl
 mil.cl
 
 // cm : https://en.wikipedia.org/wiki/.cm plus bug 981927
@@ -982,13 +996,28 @@ fi
 // TODO: Check for updates (expected to be phased out around Q1/2009)
 aland.fi
 
-// fj : https://en.wikipedia.org/wiki/.fj
-*.fj
+// fj : http://domains.fj/
+// Submitted by registry <garth.miller at cocca.org.nz> 2020-02-11
+fj
+ac.fj
+biz.fj
+com.fj
+gov.fj
+info.fj
+mil.fj
+name.fj
+net.fj
+org.fj
+pro.fj
 
 // fk : https://en.wikipedia.org/wiki/.fk
 *.fk
 
 // fm : https://en.wikipedia.org/wiki/.fm
+com.fm
+edu.fm
+net.fm
+org.fm
 fm
 
 // fo : https://en.wikipedia.org/wiki/.fo
@@ -1028,6 +1057,8 @@ ga
 gb
 
 // gd : https://en.wikipedia.org/wiki/.gd
+edu.gd
+gov.gd
 gd
 
 // ge : http://www.nic.net.ge/policy_en.pdf
@@ -3772,7 +3803,7 @@ gov.lc
 // li : https://en.wikipedia.org/wiki/.li
 li
 
-// lk : http://www.nic.lk/seclevpr.html
+// lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure
 lk
 gov.lk
 sch.lk
@@ -6314,7 +6345,6 @@ cv.ua
 dn.ua
 dnepropetrovsk.ua
 dnipropetrovsk.ua
-dominic.ua
 donetsk.ua
 dp.ua
 if.ua
@@ -6508,7 +6538,7 @@ k12.ok.us
 k12.or.us
 k12.pa.us
 k12.pr.us
-k12.ri.us
+// k12.ri.us  Removed at request of Kim Cournoyer <netsupport at staff.ri.net>
 k12.sc.us
 // k12.sd.us  Bug 934131 - Removed at request of James Booze <James.Booze at k12.sd.us>
 k12.tn.us
@@ -6795,8 +6825,13 @@ yt
 مصر
 
 // xn--e1a4c ("eu", Cyrillic) : EU
+// https://eurid.eu
 ею
 
+// xn--qxa6a ("eu", Greek) : EU
+// https://eurid.eu
+ευ
+
 // xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR
 موريتانيا
 
@@ -6901,11 +6936,11 @@ yt
 қаз
 
 // xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK
-// http://nic.lk
+// https://nic.lk
 ලංකා
 
 // xn--xkc2al3hye2a ("Ilangai", Tamil) : LK
-// http://nic.lk
+// https://nic.lk
 இலங்கை
 
 // xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA
@@ -7074,7 +7109,7 @@ org.zw
 
 // newGTLDs
 
-// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-01-06T17:33:31Z
+// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-08-07T17:16:50Z
 // This list is auto-generated, don't edit it manually.
 // aaa : 2015-02-26 American Automobile Association, Inc.
 aaa
@@ -7157,9 +7192,6 @@ agency
 // aig : 2014-12-18 American International Group, Inc.
 aig
 
-// aigo : 2015-08-06 aigo Digital Technology Co,Ltd.
-aigo
-
 // airbus : 2015-07-30 Airbus S.A.S.
 airbus
 
@@ -7196,7 +7228,7 @@ alsace
 // alstom : 2015-07-30 ALSTOM
 alstom
 
-// amazon : 2019-12-19 Amazon EU S.à r.l.
+// amazon : 2019-12-19 Amazon Registry Services, Inc.
 amazon
 
 // americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc.
@@ -7223,7 +7255,7 @@ analytics
 // android : 2014-08-07 Charleston Road Registry Inc.
 android
 
-// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
+// anquan : 2015-01-08 Beijing Qihu Keji Co., Ltd.
 anquan
 
 // anz : 2015-07-31 Australia and New Zealand Banking Group Limited
@@ -7283,7 +7315,7 @@ audi
 // audible : 2015-06-25 Amazon Registry Services, Inc.
 audible
 
-// audio : 2014-03-20 Uniregistry, Corp.
+// audio : 2014-03-20 UNR Corp.
 audio
 
 // auspost : 2015-08-13 Australian Postal Corporation
@@ -7292,7 +7324,7 @@ auspost
 // author : 2014-12-18 Amazon Registry Services, Inc.
 author
 
-// auto : 2014-11-13 Cars Registry Limited
+// auto : 2014-11-13 XYZ.COM LLC
 auto
 
 // autos : 2014-01-09 DERAutos, LLC
@@ -7376,7 +7408,7 @@ bcn
 // beats : 2015-05-14 Beats Electronics, LLC
 beats
 
-// beauty : 2015-12-03 L'Oréal
+// beauty : 2015-12-03 XYZ.COM LLC
 beauty
 
 // beer : 2014-01-09 Minds + Machines Group Limited
@@ -7421,7 +7453,7 @@ bio
 // black : 2014-01-16 Afilias Limited
 black
 
-// blackfriday : 2014-01-16 Uniregistry, Corp.
+// blackfriday : 2014-01-16 UNR Corp.
 blackfriday
 
 // blockbuster : 2015-07-30 Dish DBS Corporation
@@ -7568,7 +7600,7 @@ capital
 // capitalone : 2015-08-06 Capital One Financial Corporation
 capitalone
 
-// car : 2015-01-22 Cars Registry Limited
+// car : 2015-01-22 XYZ.COM LLC
 car
 
 // caravan : 2013-12-12 Caravan International, Inc.
@@ -7586,7 +7618,7 @@ career
 // careers : 2013-10-02 Binky Moon, LLC
 careers
 
-// cars : 2014-11-13 Cars Registry Limited
+// cars : 2014-11-13 XYZ.COM LLC
 cars
 
 // casa : 2013-11-21 Minds + Machines Group Limited
@@ -7661,7 +7693,7 @@ cheap
 // chintai : 2015-06-11 CHINTAI Corporation
 chintai
 
-// christmas : 2013-11-21 Uniregistry, Corp.
+// christmas : 2013-11-21 UNR Corp.
 christmas
 
 // chrome : 2014-07-24 Charleston Road Registry Inc.
@@ -7700,7 +7732,7 @@ claims
 // cleaning : 2013-12-05 Binky Moon, LLC
 cleaning
 
-// click : 2014-06-05 Uniregistry, Corp.
+// click : 2014-06-05 UNR Corp.
 click
 
 // clinic : 2014-03-20 Binky Moon, LLC
@@ -7832,7 +7864,7 @@ cuisinella
 // cymru : 2014-05-08 Nominet UK
 cymru
 
-// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd.
+// cyou : 2015-01-22 ShortDot SA
 cyou
 
 // dabur : 2014-02-06 Dabur India Limited
@@ -7913,7 +7945,7 @@ dhl
 // diamonds : 2013-09-22 Binky Moon, LLC
 diamonds
 
-// diet : 2014-06-26 Uniregistry, Corp.
+// diet : 2014-06-26 UNR Corp.
 diet
 
 // digital : 2014-03-06 Binky Moon, LLC
@@ -8036,9 +8068,6 @@ esq
 // estate : 2013-08-27 Binky Moon, LLC
 estate
 
-// esurance : 2015-07-23 Esurance Insurance Company
-esurance
-
 // etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat)
 etisalat
 
@@ -8153,7 +8182,7 @@ fit
 // fitness : 2014-03-06 Binky Moon, LLC
 fitness
 
-// flickr : 2015-04-02 Yahoo! Domain Services Inc.
+// flickr : 2015-04-02 Flickr, Inc.
 flickr
 
 // flights : 2013-12-05 Binky Moon, LLC
@@ -8165,7 +8194,7 @@ flir
 // florist : 2013-11-07 Binky Moon, LLC
 florist
 
-// flowers : 2014-10-09 Uniregistry, Corp.
+// flowers : 2014-10-09 UNR Corp.
 flowers
 
 // fly : 2014-05-08 Charleston Road Registry Inc.
@@ -8255,7 +8284,7 @@ gallo
 // gallup : 2015-02-19 Gallup, Inc.
 gallup
 
-// game : 2015-05-28 Uniregistry, Corp.
+// game : 2015-05-28 UNR Corp.
 game
 
 // games : 2015-05-28 Dog Beach, LLC
@@ -8393,13 +8422,13 @@ guge
 // guide : 2013-09-13 Binky Moon, LLC
 guide
 
-// guitars : 2013-11-14 Uniregistry, Corp.
+// guitars : 2013-11-14 UNR Corp.
 guitars
 
 // guru : 2013-08-27 Binky Moon, LLC
 guru
 
-// hair : 2015-12-03 L'Oréal
+// hair : 2015-12-03 XYZ.COM LLC
 hair
 
 // hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH
@@ -8426,7 +8455,7 @@ health
 // healthcare : 2014-06-12 Binky Moon, LLC
 healthcare
 
-// help : 2014-06-26 Uniregistry, Corp.
+// help : 2014-06-26 UNR Corp.
 help
 
 // helsinki : 2015-02-05 City of Helsinki
@@ -8441,7 +8470,7 @@ hermes
 // hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc.
 hgtv
 
-// hiphop : 2014-03-06 Uniregistry, Corp.
+// hiphop : 2014-03-06 UNR Corp.
 hiphop
 
 // hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc.
@@ -8450,7 +8479,7 @@ hisamitsu
 // hitachi : 2014-10-31 Hitachi, Ltd.
 hitachi
 
-// hiv : 2014-03-13 Uniregistry, Corp.
+// hiv : 2014-03-13 UNR Corp.
 hiv
 
 // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited
@@ -8489,7 +8518,7 @@ hospital
 // host : 2014-04-17 DotHost Inc.
 host
 
-// hosting : 2014-05-29 Uniregistry, Corp.
+// hosting : 2014-05-29 UNR Corp.
 hosting
 
 // hot : 2015-08-27 Amazon Registry Services, Inc.
@@ -8663,7 +8692,7 @@ jpmorgan
 // jprs : 2014-09-18 Japan Registry Services Co., Ltd.
 jprs
 
-// juegos : 2014-03-20 Uniregistry, Corp.
+// juegos : 2014-03-20 UNR Corp.
 juegos
 
 // juniper : 2015-07-30 JUNIPER NETWORKS, INC.
@@ -8774,7 +8803,7 @@ law
 // lawyer : 2014-03-20 Dog Beach, LLC
 lawyer
 
-// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant")
+// lds : 2014-03-20 IRI Domain Management, LLC
 lds
 
 // lease : 2014-03-06 Binky Moon, LLC
@@ -8831,7 +8860,7 @@ lincoln
 // linde : 2014-12-04 Linde Aktiengesellschaft
 linde
 
-// link : 2013-11-14 Uniregistry, Corp.
+// link : 2013-11-14 UNR Corp.
 link
 
 // lipsy : 2015-06-25 Lipsy Ltd
@@ -8849,7 +8878,7 @@ lixil
 // llc : 2017-12-14 Afilias Limited
 llc
 
-// llp : 2019-08-26 Dot Registry LLC
+// llp : 2019-08-26 UNR Corp.
 llp
 
 // loan : 2014-11-20 dot Loan Limited
@@ -8867,7 +8896,7 @@ locus
 // loft : 2015-07-30 Annco, Inc.
 loft
 
-// lol : 2015-01-30 Uniregistry, Corp.
+// lol : 2015-01-30 UNR Corp.
 lol
 
 // london : 2013-11-14 Dot London Domains Limited
@@ -8918,7 +8947,7 @@ maif
 // maison : 2013-12-05 Binky Moon, LLC
 maison
 
-// makeup : 2015-01-15 L'Oréal
+// makeup : 2015-01-15 XYZ.COM LLC
 makeup
 
 // man : 2014-12-04 MAN SE
@@ -9029,7 +9058,7 @@ moe
 // moi : 2014-12-18 Amazon Registry Services, Inc.
 moi
 
-// mom : 2015-04-16 Uniregistry, Corp.
+// mom : 2015-04-16 UNR Corp.
 mom
 
 // monash : 2013-09-30 Monash University
@@ -9041,7 +9070,7 @@ money
 // monster : 2015-09-11 XYZ.COM LLC
 monster
 
-// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant")
+// mormon : 2013-12-05 IRI Domain Management, LLC
 mormon
 
 // mortgage : 2014-03-20 Dog Beach, LLC
@@ -9077,9 +9106,6 @@ mutual
 // nab : 2015-08-20 National Australia Bank Limited
 nab
 
-// nadex : 2014-12-11 Nadex Domains, Inc.
-nadex
-
 // nagoya : 2013-10-24 GMO Registry, Inc.
 nagoya
 
@@ -9107,7 +9133,7 @@ netflix
 // network : 2013-11-14 Binky Moon, LLC
 network
 
-// neustar : 2013-12-05 Registry Services, LLC
+// neustar : 2013-12-05 NeuStar, Inc.
 neustar
 
 // new : 2014-01-30 Charleston Road Registry Inc.
@@ -9308,7 +9334,7 @@ philips
 // phone : 2016-06-02 Dish DBS Corporation
 phone
 
-// photo : 2013-11-14 Uniregistry, Corp.
+// photo : 2013-11-14 UNR Corp.
 photo
 
 // photography : 2013-09-20 Binky Moon, LLC
@@ -9320,7 +9346,7 @@ photos
 // physio : 2014-05-01 PhysBiz Pty Ltd
 physio
 
-// pics : 2013-11-14 Uniregistry, Corp.
+// pics : 2013-11-14 UNR Corp.
 pics
 
 // pictet : 2014-06-26 Pictet Europe S.A.
@@ -9407,7 +9433,7 @@ promo
 // properties : 2013-12-05 Binky Moon, LLC
 properties
 
-// property : 2014-05-22 Uniregistry, Corp.
+// property : 2014-05-22 UNR Corp.
 property
 
 // protection : 2015-04-23 XYZ.COM LLC
@@ -9527,9 +9553,6 @@ richardli
 // ricoh : 2014-11-20 Ricoh Company, Ltd.
 ricoh
 
-// rightathome : 2015-07-23 Johnson Shareholdings, Inc.
-rightathome
-
 // ril : 2015-04-02 Reliance Industries Limited
 ril
 
@@ -9659,9 +9682,6 @@ science
 // scjohnson : 2015-07-23 Johnson Shareholdings, Inc.
 scjohnson
 
-// scor : 2014-10-31 SCOR SE
-scor
-
 // scot : 2014-01-23 Dot Scot Registry Limited
 scot
 
@@ -9701,7 +9721,7 @@ sew
 // sex : 2014-11-13 ICM Registry SX LLC
 sex
 
-// sexy : 2013-09-11 Uniregistry, Corp.
+// sexy : 2013-09-11 UNR Corp.
 sexy
 
 // sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR
@@ -9734,7 +9754,7 @@ shop
 // shopping : 2016-03-31 Binky Moon, LLC
 shopping
 
-// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
+// shouji : 2015-01-08 Beijing Qihu Keji Co., Ltd.
 shouji
 
 // show : 2015-03-05 Binky Moon, LLC
@@ -9761,7 +9781,7 @@ site
 // ski : 2015-04-09 Afilias Limited
 ski
 
-// skin : 2015-01-15 L'Oréal
+// skin : 2015-01-15 XYZ.COM LLC
 skin
 
 // sky : 2014-06-19 Sky International AG
@@ -9905,9 +9925,6 @@ swiss
 // sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet
 sydney
 
-// symantec : 2014-12-04 Symantec Corporation
-symantec
-
 // systems : 2013-11-07 Binky Moon, LLC
 systems
 
@@ -9932,7 +9949,7 @@ tatamotors
 // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic"
 tatar
 
-// tattoo : 2013-08-30 Uniregistry, Corp.
+// tattoo : 2013-08-30 UNR Corp.
 tattoo
 
 // tax : 2014-03-20 Binky Moon, LLC
@@ -10049,7 +10066,7 @@ trading
 // training : 2013-11-07 Binky Moon, LLC
 training
 
-// travel :  Dog Beach, LLC
+// travel : 2015-10-09 Dog Beach, LLC
 travel
 
 // travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc.
@@ -10061,7 +10078,7 @@ travelers
 // travelersinsurance : 2015-03-26 Travelers TLD, LLC
 travelersinsurance
 
-// trust : 2014-10-16 NCC Group Inc.
+// trust : 2014-10-16 NCC Group Domain Services, Inc.
 trust
 
 // trv : 2015-03-26 Travelers TLD, LLC
@@ -10157,9 +10174,6 @@ visa
 // vision : 2013-12-05 Binky Moon, LLC
 vision
 
-// vistaprint : 2014-09-18 Vistaprint Limited
-vistaprint
-
 // viva : 2014-11-07 Saudi Telecom Company
 viva
 
@@ -10301,7 +10315,7 @@ xerox
 // xfinity : 2015-07-09 Comcast IP Holdings I, LLC
 xfinity
 
-// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
+// xihuan : 2015-01-08 Beijing Qihu Keji Co., Ltd.
 xihuan
 
 // xin : 2014-12-11 Elegant Leader Limited
@@ -10337,7 +10351,7 @@ xin
 // xn--45q11c : 2013-11-21 Zodiac Gemini Ltd
 八卦
 
-// xn--4gbrim : 2013-10-04 Suhub Electronic Establishment
+// xn--4gbrim : 2013-10-04 Fans TLD Limited
 موقع
 
 // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center
@@ -10397,7 +10411,7 @@ xin
 // xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc.
 ストア
 
-// xn--cckwcxetd : 2019-12-19 Amazon EU S.à r.l.
+// xn--cckwcxetd : 2019-12-19 Amazon Registry Services, Inc.
 アマゾン
 
 // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD
@@ -10421,9 +10435,6 @@ xin
 // xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd.
 新闻
 
-// xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited
-工行
-
 // xn--fct429k : 2015-04-09 Amazon Registry Services, Inc.
 家電
 
@@ -10469,7 +10480,7 @@ xin
 // xn--j1aef : 2015-01-15 VeriSign Sarl
 ком
 
-// xn--jlq480n2rg : 2019-12-19 Amazon EU S.à r.l.
+// xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc.
 亚马逊
 
 // xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
@@ -10481,9 +10492,6 @@ xin
 // xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V.
 飞利浦
 
-// xn--kpu716f : 2014-12-22 Richemont DNS Inc.
-手表
-
 // xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd
 手机
 
@@ -10532,15 +10540,12 @@ xin
 // xn--nyqy26a : 2014-11-07 Stable Tone Limited
 健康
 
-// xn--otu796d : 2017-08-06 Internet DotTrademark Organisation Limited
+// xn--otu796d : 2017-08-06 Jiang Yu Liang Cai Technology Company Limited
 招聘
 
 // xn--p1acf : 2013-12-12 Rusnames Limited
 рус
 
-// xn--pbt977c : 2014-12-22 Richemont DNS Inc.
-珠宝
-
 // xn--pssy2u : 2015-01-15 VeriSign Sarl
 大拿
 
@@ -10625,7 +10630,7 @@ you
 // youtube : 2014-05-01 Charleston Road Registry Inc.
 youtube
 
-// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
+// yun : 2015-01-08 Beijing Qihu Keji Co., Ltd.
 yun
 
 // zappos : 2015-06-25 Amazon Registry Services, Inc.
@@ -10657,6 +10662,9 @@ cc.ua
 inf.ua
 ltd.ua
 
+// 611coin : https://611project.org/
+611.to
+
 // Adobe : https://www.adobe.com/
 // Submitted by Ian Boston <boston at adobe.com>
 adobeaemcloud.com
@@ -10676,6 +10684,16 @@ barsy.ca
 *.compute.estate
 *.alces.network
 
+// all-inkl.com : https://all-inkl.com
+// Submitted by Werner Kaltofen <wk at all-inkl.com>
+kasserver.com
+
+// Algorithmia, Inc. : algorithmia.com
+// Submitted by Eli Perelman <eperelman at algorithmia.io>
+*.algorithmia.com
+!teams.algorithmia.com
+!test.algorithmia.com
+
 // Altervista: https://www.altervista.org
 // Submitted by Carlo Cannas <tech_staff at altervista.it>
 altervista.org
@@ -10840,8 +10858,11 @@ backplaneapp.io
 balena-devices.com
 
 // Banzai Cloud
-// Submitted by Gabor Kozma <info at banzaicloud.com>
+// Submitted by Janos Matyas <info at banzaicloud.com>
+*.banzai.cloud
 app.banzaicloud.io
+*.backyards.banzaicloud.io
+
 
 // BetaInABox
 // Submitted by Adrian <adrian at betainabox.com>
@@ -10895,33 +10916,36 @@ uwu.ai
 // CentralNic : http://www.centralnic.com/names/domains
 // Submitted by registry <gavin.brown at centralnic.com>
 ae.org
-ar.com
 br.com
 cn.com
 com.de
 com.se
 de.com
 eu.com
-gb.com
 gb.net
-hu.com
 hu.net
 jp.net
 jpn.com
-kr.com
 mex.com
-no.com
-qc.com
 ru.com
 sa.com
 se.net
 uk.com
 uk.net
 us.com
-uy.com
 za.bz
 za.com
 
+// No longer operated by CentralNic, these entries should be adopted and/or removed by current operators
+// Submitted by Gavin Brown <gavin.brown at centralnic.com>
+ar.com
+gb.com
+hu.com
+kr.com
+no.com
+qc.com
+uy.com
+
 // Africa.com Web Solutions Ltd : https://registry.africa.com
 // Submitted by Gavin Brown <gavin.brown at centralnic.com>
 africa.com
@@ -10933,6 +10957,7 @@ gr.com
 // Radix FZC : http://domains.in.net
 // Submitted by Gavin Brown <gavin.brown at centralnic.com>
 in.net
+web.in
 
 // US REGISTRY LLC : http://us.org
 // Submitted by Gavin Brown <gavin.brown at centralnic.com>
@@ -10942,6 +10967,21 @@ us.org
 // Submitted by Gavin Brown <gavin.brown at centralnic.com>
 co.com
 
+// Roar Domains LLC : https://roar.basketball/
+// Submitted by Gavin Brown <gavin.brown at centralnic.com>
+aus.basketball
+nz.basketball
+
+// BRS Media : https://brsmedia.com/
+// Submitted by Gavin Brown <gavin.brown at centralnic.com>
+radio.am
+radio.fm
+
+// Globe Hosting SRL : https://www.globehosting.com/
+// Submitted by Gavin Brown <gavin.brown at centralnic.com>
+co.ro
+shop.ro
+
 // c.la : http://www.c.la/
 c.la
 
@@ -10954,8 +10994,9 @@ certmgr.org
 xenapponazure.com
 
 // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/
-// Submitted by Rishabh Nambiar <rishabh.nambiar at discourse.org>
+// Submitted by Rishabh Nambiar & Michael Brown <team at discourse.org>
 discourse.group
+discourse.team
 
 // ClearVox : http://www.clearvox.nl/
 // Submitted by Leon Rowland <leon at clearvox.nl>
@@ -10970,6 +11011,10 @@ cleverapps.io
 *.lcl.dev
 *.stg.dev
 
+// Clic2000 : https://clic2000.fr
+// Submitted by Mathilde Blanchemanche <mathilde at clic2000.fr>
+clic2000.net
+
 // Cloud66 : https://www.cloud66.com/
 // Submitted by Khash Sajadi <khash at cloud66.com>
 c66.me
@@ -11085,6 +11130,10 @@ realm.cz
 // Submitted by Jonathan Rudenberg <jonathan at cupcake.io>
 cupcake.is
 
+// Curv UG : https://curv-labs.de/
+// Submitted by Marvin Wiesner <Marvin at curv-labs.de>
+curv.dev
+
 // Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/
 // Submitted by Gregory Drake <support at dyn.com>
 // Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label
@@ -11098,6 +11147,12 @@ cupcake.is
 cyon.link
 cyon.site
 
+// Danger Science Group: https://dangerscience.com/
+// Submitted by Skylar MacDonald <skylar at dangerscience.com>
+fnwk.site
+folionetwork.site
+platform0.app
+
 // Daplie, Inc : https://daplie.com
 // Submitted by AJ ONeal <aj at daplie.com>
 daplie.me
@@ -11120,6 +11175,10 @@ firm.dk
 reg.dk
 store.dk
 
+// dappnode.io : https://dappnode.io/
+// Submitted by Abel Boldu / DAppNode Team <community at dappnode.io>
+dyndns.dappnode.io
+
 // dapps.earth : https://dapps.earth/
 // Submitted by Daniil Burdakov <icqkill at gmail.com>
 *.dapps.earth
@@ -11141,6 +11200,10 @@ debian.net
 // Submitted by Peter Thomassen <peter at desec.io>
 dedyn.io
 
+// DNS Africa Ltd https://dns.business
+// Submitted by Calvin Browne <calvin at dns.business>
+jozi.biz
+
 // DNShome : https://www.dnshome.de/
 // Submitted by Norbert Auler <mail at dnshome.de>
 dnshome.de
@@ -11171,6 +11234,9 @@ drud.us
 // Submitted by Richard Harper <richard at duckdns.org>
 duckdns.org
 
+// bitbridge.net : Submitted by Craig Welch, abeliidev at gmail.com
+bitbridge.net
+
 // dy.fi : http://dy.fi/
 // Submitted by Heikki Hannikainen <hessu at hes.iki.fi>
 dy.fi
@@ -11602,6 +11668,10 @@ twmail.org
 mymailer.com.tw
 url.tw
 
+// Fabrica Technologies, Inc. : https://www.fabrica.dev/
+// Submitted by Eric Jiang <eric at fabrica.dev>
+onfabrica.com
+
 // Facebook, Inc.
 // Submitted by Peter Ruibal <public-suffix at fb.com>
 apps.fbsbx.com
@@ -11685,6 +11755,7 @@ vologda.su
 // Fancy Bits, LLC : http://getchannels.com
 // Submitted by Aman Gupta <aman at getchannels.com>
 channelsdvr.net
+u.channelsdvr.net
 
 // Fastly Inc. : http://www.fastly.com/
 // Submitted by Fastly Security <security at fastly.com>
@@ -11701,8 +11772,11 @@ global.ssl.fastly.net
 
 // FASTVPS EESTI OU : https://fastvps.ru/
 // Submitted by Likhachev Vasiliy <lihachev at fastvps.ru>
-fastpanel.direct
 fastvps-server.com
+fastvps.host
+myfast.host
+fastvps.site
+myfast.space
 
 // Featherhead : https://featherhead.xyz/
 // Submitted by Simon Menke <simon at featherhead.xyz>
@@ -11716,6 +11790,13 @@ cloud.fedoraproject.org
 app.os.fedoraproject.org
 app.os.stg.fedoraproject.org
 
+// FearWorks Media Ltd. : https://fearworksmedia.co.uk
+// submitted by Keith Fairley <domains at fearworksmedia.co.uk>
+conn.uk
+copro.uk
+couk.me
+ukco.me
+
 // Fermax : https://fermax.com/
 // submitted by Koen Van Isterdael <k.vanisterdael at fermax.be>
 mydobiss.com
@@ -11734,9 +11815,14 @@ filegear-sg.me
 // Submitted by Chris Raynor <chris at firebase.com>
 firebaseapp.com
 
+// fly.io: https://fly.io
+// Submitted by Kurt Mackey <kurt at fly.io>
+fly.dev
+edgeapp.net
+shw.io
+
 // Flynn : https://flynn.io
 // Submitted by Jonathan Rudenberg <jonathan at flynn.io>
-flynnhub.com
 flynnhosting.net
 
 // Frederik Braun https://frederik-braun.com
@@ -11756,6 +11842,10 @@ freeboxos.fr
 // Submitted by Daniel Stone <daniel at fooishbar.org>
 freedesktop.org
 
+// FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at
+// Submitted by Daniel A. Maierhofer <vorstand at funkfeuer.at>
+wien.funkfeuer.at
+
 // Futureweb OG : http://www.futureweb.at
 // Submitted by Andreas Schnederle-Wagner <schnederle at futureweb.at>
 *.futurecms.at
@@ -11779,6 +11869,7 @@ usercontent.jp
 // Gentlent, Inc. : https://www.gentlent.com
 // Submitted by Tom Klein <tom at gentlent.com>
 gentapps.com
+gentlentapis.com
 lab.ms
 
 // GitHub, Inc.
@@ -11790,6 +11881,10 @@ githubusercontent.com
 // Submitted by Alex Hanselka <alex at gitlab.com>
 gitlab.io
 
+// Gitplac.si - https://gitplac.si
+// Submitted by Aljaž Starc <me at aljaxus.eu>
+gitpage.si
+
 // Glitch, Inc : https://glitch.com
 // Submitted by Mads Hartmann <mads at glitch.com>
 glitch.me
@@ -11803,6 +11898,10 @@ lolipop.io
 cloudapps.digital
 london.cloudapps.digital
 
+// GOV.UK Pay : https://www.payments.service.gov.uk/
+// Submitted by Richard Baker <richard.baker at digital.cabinet-office.gov.uk>
+pymnt.uk
+
 // UKHomeOffice : https://www.gov.uk/government/organisations/home-office
 // Submitted by Jon Shanks <jon.shanks at digital.homeoffice.gov.uk>
 homeoffice.gov.uk
@@ -11810,7 +11909,6 @@ homeoffice.gov.uk
 // GlobeHosting, Inc.
 // Submitted by Zoltan Egresi <egresi at globehosting.com>
 ro.im
-shop.ro
 
 // GoIP DNS Services : http://www.goip.de
 // Submitted by Christian Poulter <milchstrasse at goip.de>
@@ -11908,6 +12006,10 @@ publishproxy.com
 withgoogle.com
 withyoutube.com
 
+// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za
+// Submitted by Aaron Marais <its_me at aaronleem.co.za>
+graphox.us
+
 // Group 53, LLC : https://www.group53.com
 // Submitted by Tyler Todd <noc at nova53.net>
 awsmppl.com
@@ -11965,6 +12067,9 @@ ngo.ng
 ng.school
 sch.so
 
+// HostyHosting (hostyhosting.com)
+hostyhosting.io
+
 // Häkkinen.fi
 // Submitted by Eero Häkkinen <Eero+psl at Häkkinen.fi>
 häkkinen.fi
@@ -12033,13 +12138,18 @@ to.leg.br
 // Submitted by Wolfgang Schwarz <admin at intermetrics.de>
 pixolino.com
 
+// Internet-Pro, LLP: https://netangels.ru/
+// Submited by Vasiliy Sheredeko <piphon at gmail.com>
+na4u.ru
+
 // IPiFony Systems, Inc. : https://www.ipifony.com/
 // Submitted by Matthew Hardeman <mhardeman at ipifony.com>
 ipifony.net
 
 // IServ GmbH : https://iserv.eu
-// Submitted by Kim-Alexander Brodowski <kim.brodowski at iserv.eu>
+// Submitted by Kim-Alexander Brodowski <info at iserv.eu>
 mein-iserv.de
+schulserver.de
 test-iserv.de
 iserv.dev
 
@@ -12047,6 +12157,32 @@ iserv.dev
 // Submitted by Yuji Minagawa <domains-admin at iodata.jp>
 iobb.net
 
+//Jelastic, Inc. : https://jelastic.com/
+// Submited by Ihor Kolodyuk <ik at jelastic.com>
+appengine.flow.ch
+vip.jelastic.cloud
+jele.cloud
+jele.club
+dopaas.com
+hidora.com
+jcloud.ik-server.com
+demo.jelastic.com
+paas.massivegrid.com
+j.scaleforce.com.cy
+jelastic.dogado.eu
+fi.cloudplatform.fi
+paas.datacenter.fi
+jele.host
+mircloud.host
+jele.io
+cloudjiffy.net
+jls-sto1.elastx.net
+jelastic.saveincloud.net
+jelastic.regruhosting.ru
+jele.site
+jelastic.team
+j.layershift.co.uk
+
 // Jino : https://www.jino.ru
 // Submitted by Sergey Ulyashin <ulyashin at jino.ru>
 myjino.ru
@@ -12132,7 +12268,8 @@ linkyard-cloud.ch
 // Linode : https://linode.com
 // Submitted by <security at linode.com>
 members.linode.com
-nodebalancer.linode.com
+*.nodebalancer.linode.com
+*.linodeobjects.com
 
 // LiquidNet Ltd : http://www.liquidnetlimited.com/
 // Submitted by Victor Velchev <admin at liquidnetlimited.com>
@@ -12201,6 +12338,15 @@ mayfirst.org
 // Submitted by Ilya Zaretskiy <zaretskiy at corp.mail.ru>
 hb.cldmail.ru
 
+// mcpe.me : https://mcpe.me
+// Submitted by Noa Heyl <hi at noa.dev>
+mcpe.me
+
+// McHost : https://mchost.ru
+// Submitted by Evgeniy Subbotin <e.subbotin at mchost.ru>
+mcdir.ru
+vps.mcdir.ru
+
 // Memset hosting : https://www.memset.com
 // Submitted by Tom Whitwell <domains at memset.com>
 miniserver.com
@@ -12208,7 +12354,7 @@ memset.net
 
 // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/
 // Submitted by Zdeněk Šustr <zdenek.sustr at cesnet.cz>
-cloud.metacentrum.cz
+*.cloud.metacentrum.cz
 custom.metacentrum.cz
 
 // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/
@@ -12225,12 +12371,20 @@ eu.meteorapp.com
 co.pl
 
 // Microsoft Corporation : http://microsoft.com
-// Submitted by Justin Luk <juluk at microsoft.com>
-azurecontainer.io
+// Submitted by Mostafa Elzeiny <moelzein at microsoft.com>
+*.azurecontainer.io
 azurewebsites.net
 azure-mobile.net
 cloudapp.net
 
+// minion.systems : http://minion.systems
+// Submitted by Robert Böttinger <r at minion.systems>
+csx.cc
+
+// MobileEducation, LLC : https://joinforte.com
+// Submitted by Grayson Martin <grayson.martin at mobileeducation.us>
+forte.id
+
 // Mozilla Corporation : https://mozilla.com
 // Submitted by Ben Francis <bfrancis at mozilla.com>
 mozilla-iot.org
@@ -12245,6 +12399,19 @@ net.ru
 org.ru
 pp.ru
 
+// Mythic Beasts : https://www.mythic-beasts.com
+// Submitted by Paul Cammish <kelduum at mythic-beasts.com>
+hostedpi.com
+customer.mythic-beasts.com
+lynx.mythic-beasts.com
+ocelot.mythic-beasts.com
+onza.mythic-beasts.com
+sphinx.mythic-beasts.com
+vs.mythic-beasts.com
+x.mythic-beasts.com
+yali.mythic-beasts.com
+cust.retrosnub.co.uk
+
 // Nabu Casa : https://www.nabucasa.com
 // Submitted by Paulus Schoutsen <infra at nabucasa.com>
 ui.nabu.casa
@@ -12271,8 +12438,7 @@ nctu.me
 
 // Netlify : https://www.netlify.com
 // Submitted by Jessica Parsons <jessica at netlify.com>
-bitballoon.com
-netlify.com
+netlify.app
 
 // Neustar Inc.
 // Submitted by Trung Tran <Trung.Tran at neustar.biz>
@@ -12429,12 +12595,13 @@ pcloud.host
 nyc.mn
 
 // NymNom : https://nymnom.com/
-// Submitted by Dave McCormack <dave.mccormack at nymnom.com>
+// Submitted by NymNom <psl at nymnom.com>
 nom.ae
 nom.af
 nom.ai
 nom.al
 nym.by
+nom.bz
 nym.bz
 nom.cl
 nym.ec
@@ -12456,6 +12623,7 @@ nom.li
 nym.li
 nym.lt
 nym.lu
+nom.lv
 nym.me
 nom.mk
 nym.mn
@@ -12488,14 +12656,26 @@ static.observableusercontent.com
 // Submitted by Andrew Sampson <andrew at ulterius.io>
 cya.gg
 
+// OMG.LOL : <https://omg.lol>
+// Submitted by Adam Newbold <adam at omg.lol>
+omg.lol
+
 // Omnibond Systems, LLC. : https://www.omnibond.com
 // Submitted by Cole Estep <cole at omnibond.com>
 cloudycluster.net
 
+// OmniWe Limited: https://omniwe.com
+// Submitted by Vicary Archangel <vicary at omniwe.com>
+omniwe.site
+
 // One Fold Media : http://www.onefoldmedia.com/
 // Submitted by Eddie Jones <eddie at onefoldmedia.com>
 nid.io
 
+// Open Social : https://www.getopensocial.com/
+// Submitted by Alexander Varwijk <security at getopensocial.com>
+opensocial.site
+
 // OpenCraft GmbH : http://opencraft.com/
 // Submitted by Sven Marnach <sven at opencraft.com>
 opencraft.hosting
@@ -12517,6 +12697,10 @@ outsystemscloud.com
 ownprovider.com
 own.pm
 
+// OwO : https://whats-th.is/
+// Submitted by Dean Sheather <dean at deansheather.com>
+*.owo.codes
+
 // OX : http://www.ox.rs
 // Submitted by Adam Grand <webmaster at mail.ox.rs>
 ox.rs
@@ -12533,6 +12717,17 @@ pgfog.com
 // Submitted by Jason Kriss <jason at pagefronthq.com>
 pagefrontapp.com
 
+// PageXL : https://pagexl.com
+// Submitted by Yann Guichard <yann at pagexl.com>
+pagexl.com
+
+// pcarrier.ca Software Inc: https://pcarrier.ca/
+// Submitted by Pierre Carrier <pc at rrier.ca>
+bar0.net
+bar1.net
+bar2.net
+rdv.to
+
 // .pl domains (grandfathered)
 art.pl
 gliwice.pl
@@ -12560,9 +12755,24 @@ on-web.fr
 
 // Platform.sh : https://platform.sh
 // Submitted by Nikola Kotur <nikola at platform.sh>
-*.platform.sh
+bc.platform.sh
+ent.platform.sh
+eu.platform.sh
+us.platform.sh
 *.platformsh.site
 
+// Platter: https://platter.dev
+// Submitted by Patrick Flor <patrick at platter.dev>
+platter-app.com
+platter-app.dev
+platterp.us
+
+// Plesk : https://www.plesk.com/
+// Submitted by Anton Akhtyamov <program-managers at plesk.com>
+pdns.page
+plesk.page
+pleskns.com
+
 // Port53 : https://port53.io/
 // Submitted by Maximilian Schieder <maxi at zeug.co>
 dyn53.io
@@ -12604,6 +12814,10 @@ pubtls.org
 // Submitted by Xavier De Cock <xdecock at gmail.com>
 qualifioapp.com
 
+// QuickBackend: https://www.quickbackend.com
+// Submitted by Dani Biro <dani at pymet.com>
+qbuser.com
+
 // Redstar Consultants : https://www.redstarconsultants.com/
 // Submitted by Jons Slemmer <jons at redstarconsultants.com>
 instantcloud.cn
@@ -12641,6 +12855,10 @@ vaporcloud.io
 rackmaze.com
 rackmaze.net
 
+// Rakuten Games, Inc : https://dev.viberplay.io
+// Submitted by Joshua Zhang <public-suffix at rgames.jp>
+g.vbrplsbx.io
+
 // Rancher Labs, Inc : https://rancher.com
 // Submitted by Vincent Fiduccia <domains at rancher.com>
 *.on-k3s.io
@@ -12718,6 +12936,14 @@ my-firewall.org
 myfirewall.org
 spdns.org
 
+// Seidat : https://www.seidat.com
+// Submitted by Artem Kondratev <accounts at seidat.com>
+seidat.net
+
+// Senseering GmbH : https://www.senseering.de
+// Submitted by Felix Mönckemeyer <f.moenckemeyer at senseering.de>
+senseering.net
+
 // Service Online LLC : http://drs.ua/
 // Submitted by Serhii Bulakh <support at drs.ua>
 biz.ua
@@ -12736,6 +12962,10 @@ myshopblocks.com
 // Submitted by Craig McMahon <craig at shopitcommerce.com>
 shopitsite.com
 
+// shopware AG : https://shopware.com
+// Submitted by Jens Küper <cloud at shopware.com>
+shopware.store
+
 // Siemens Mobility GmbH
 // Submitted by Oliver Graebner <security at mo-siemens.io>
 mo-siemens.io
@@ -12758,6 +12988,10 @@ bounty-full.com
 alpha.bounty-full.com
 beta.bounty-full.com
 
+// Small Technology Foundation : https://small-tech.org
+// Submitted by Aral Balkan <aral at small-tech.org>
+small-web.org
+
 // Stackhero : https://www.stackhero.io
 // Submitted by Adrien Gillon <adrien+public-suffix-list at stackhero.io>
 stackhero-network.com
@@ -12768,6 +13002,10 @@ static.land
 dev.static.land
 sites.static.land
 
+// Sony Interactive Entertainment LLC : https://sie.com/
+// Submitted by David Coles <david.coles at sony.com>
+playstation-cloud.com
+
 // SourceLair PC : https://www.sourcelair.com
 // Submitted by Antonis Kalipetis <akalipetis at sourcelair.com>
 apps.lair.io
@@ -12866,6 +13104,8 @@ cust.dev.thingdust.io
 cust.disrec.thingdust.io
 cust.prod.thingdust.io
 cust.testing.thingdust.io
+*.firenet.ch
+*.svc.firenet.ch
 
 // Tlon.io : https://tlon.io
 // Submitted by Mark Staarink <mark at tlon.io>
@@ -12942,6 +13182,11 @@ inc.hk
 virtualuser.de
 virtual-user.de
 
+// urown.net : https://urown.net
+// Submitted by Hostmaster <hostmaster at urown.net>
+urown.cloud
+dnsupdate.info
+
 // .US
 // Submitted by Ed Moore <Ed.Moore at lib.de.us>
 lib.de.us
@@ -12950,6 +13195,12 @@ lib.de.us
 // Submitted by Danko Aleksejevs <danko at very.lv>
 2038.io
 
+// Vercel, Inc : https://vercel.com/
+// Submitted by Connor Davis <security at vercel.com>
+vercel.app
+vercel.dev
+now.sh
+
 // Viprinet Europe GmbH : http://www.viprinet.com
 // Submitted by Simon Kissel <hostmaster at viprinet.com>
 router.management
@@ -12962,6 +13213,49 @@ v-info.info
 // Submitted by Nathan van Bakel <info at voorloper.com>
 voorloper.cloud
 
+// Voxel.sh DNS : https://voxel.sh/dns/
+// Submitted by Mia Rehlinger <dns at voxel.sh>
+neko.am
+nyaa.am
+be.ax
+cat.ax
+es.ax
+eu.ax
+gg.ax
+mc.ax
+us.ax
+xy.ax
+nl.ci
+xx.gl
+app.gp
+blog.gt
+de.gt
+to.gt
+be.gy
+cc.hn
+blog.kg
+io.kg
+jp.kg
+tv.kg
+uk.kg
+us.kg
+de.ls
+at.md
+de.md
+jp.md
+to.md
+uwu.nu
+indie.porn
+vxl.sh
+ch.tc
+me.tc
+we.tc
+nyan.to
+at.vg
+blog.vu
+dev.vu
+me.vu
+
 // V.UA Domain Administrator : https://domain.v.ua/
 // Submitted by Serhii Rostilo <sergey at rostilo.kiev.ua>
 v.ua
@@ -12984,9 +13278,32 @@ wedeploy.sh
 // Submitted by Jung Jin <jungseok.jin at wdc.com>
 remotewd.com
 
+// WIARD Enterprises : https://wiardweb.com
+// Submitted by Kidd Hustle <kiddhustle at wiardweb.com>
+pages.wiardweb.com
+
 // Wikimedia Labs : https://wikitech.wikimedia.org
-// Submitted by Yuvi Panda <yuvipanda at wikimedia.org>
+// Submitted by Arturo Borrero Gonzalez <aborrero at wikimedia.org>
 wmflabs.org
+toolforge.org
+wmcloud.org
+
+// WISP : https://wisp.gg
+// Submitted by Stepan Fedotov <stepan at wisp.gg>
+panel.gg
+daemon.panel.gg
+
+// WoltLab GmbH : https://www.woltlab.com
+// Submitted by Tim Düsterhus <security at woltlab.cloud>
+myforum.community
+community-pro.de
+diskussionsbereich.de
+community-pro.net
+meinforum.net
+
+// www.com.vc : http://www.com.vc
+// Submitted by Li Hui <lihui at sinopub.com>
+cn.vu
 
 // XenonCloud GbR: https://xenoncloud.net
 // Submitted by Julian Uphoff <publicsuffixlist at xenoncloud.net>
@@ -13038,10 +13355,6 @@ noho.st
 za.net
 za.org
 
-// Zeit, Inc. : https://zeit.domains/
-// Submitted by Olli Vanhoja <olli at zeit.co>
-now.sh
-
 // Zine EOOD : https://zine.bg/
 // Submitted by Martin Angelov <martin at zine.bg>
 bss.design
@@ -13050,7 +13363,18 @@ bss.design
 // Submitted by Emil Stahl <esp at zitcom.dk>
 basicserver.io
 virtualserver.io
-site.builder.nu
 enterprisecloud.nu
 
+// Mintere : https://mintere.com/
+// Submitted by Ben Aubin <security at mintere.com>
+mintere.site
+
+// WP Engine : https://wpengine.com/
+// Submitted by Michael Smith <michael.smith at wpengine.com>
+wpenginepowered.com
+
+// Impertrix Solutions : <https://impertrixcdn.com>
+// Submitted by Zhixiang Zhao <csuite at impertrix.com>
+impertrixcdn.com
+impertrix.com
 // ===END PRIVATE DOMAINS===


=====================================
httpclient/src/test/java/org/apache/http/conn/ssl/TestDefaultHostnameVerifier.java
=====================================
@@ -35,6 +35,7 @@ import java.nio.charset.Charset;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import javax.net.ssl.SSLException;
@@ -375,6 +376,7 @@ public class TestDefaultHostnameVerifier {
         Assert.assertTrue(DefaultHostnameVerifier.matchIdentity(        "service.apps." + domain, "*.apps." + domain, publicSuffixMatcher, DomainType.UNKNOWN));
         Assert.assertTrue(DefaultHostnameVerifier.matchIdentityStrict(  "service.apps." + domain, "*.apps." + domain, publicSuffixMatcher, DomainType.UNKNOWN));
     }
+
     @Test // Check compressed IPv6 hostname matching
     public void testHTTPCLIENT_1316() throws Exception{
         final String host1 = "2001:0db8:aaaa:bbbb:cccc:0:0:0001";
@@ -417,4 +419,28 @@ public class TestDefaultHostnameVerifier {
         }
     }
 
+    @Test
+    public void testMatchDNSName() throws Exception {
+        DefaultHostnameVerifier.matchDNSName(
+                "host.domain.com",
+                Collections.singletonList(SubjectName.DNS("*.domain.com")),
+                publicSuffixMatcher);
+        DefaultHostnameVerifier.matchDNSName(
+                "host.xx",
+                Collections.singletonList(SubjectName.DNS("*.xx")),
+                publicSuffixMatcher);
+        DefaultHostnameVerifier.matchDNSName(
+                "host.appspot.com",
+                Collections.singletonList(SubjectName.DNS("*.appspot.com")),
+                publicSuffixMatcher);
+        DefaultHostnameVerifier.matchDNSName(
+                "demo-s3-bucket.s3.eu-central-1.amazonaws.com",
+                Collections.singletonList(SubjectName.DNS("*.s3.eu-central-1.amazonaws.com")),
+                publicSuffixMatcher);
+        DefaultHostnameVerifier.matchDNSName(
+                "hostname-workspace-1.local",
+                Collections.singletonList(SubjectName.DNS("hostname-workspace-1.local")),
+                publicSuffixMatcher);
+    }
+
 }


=====================================
httpclient/src/test/java/org/apache/http/conn/util/TestPublicSuffixMatcher.java
=====================================
@@ -57,11 +57,11 @@ public class TestPublicSuffixMatcher {
     @Test
     public void testGetDomainRootAnyType() {
         // Private
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("example.XX"));
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("www.example.XX"));
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("www.blah.blah.example.XX"));
+        Assert.assertEquals("xx", matcher.getDomainRoot("example.XX"));
+        Assert.assertEquals("xx", matcher.getDomainRoot("www.example.XX"));
+        Assert.assertEquals("xx", matcher.getDomainRoot("www.blah.blah.example.XX"));
+        Assert.assertEquals("appspot.com", matcher.getDomainRoot("example.appspot.com"));
         // Too short
-        Assert.assertEquals(null, matcher.getDomainRoot("xx"));
         Assert.assertEquals(null, matcher.getDomainRoot("jp"));
         Assert.assertEquals(null, matcher.getDomainRoot("ac.jp"));
         Assert.assertEquals(null, matcher.getDomainRoot("any.tokyo.jp"));
@@ -79,11 +79,11 @@ public class TestPublicSuffixMatcher {
     @Test
     public void testGetDomainRootOnlyPRIVATE() {
         // Private
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("example.XX", DomainType.PRIVATE));
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("www.example.XX", DomainType.PRIVATE));
-        Assert.assertEquals("example.xx", matcher.getDomainRoot("www.blah.blah.example.XX", DomainType.PRIVATE));
+        Assert.assertEquals("xx", matcher.getDomainRoot("example.XX", DomainType.PRIVATE));
+        Assert.assertEquals("xx", matcher.getDomainRoot("www.example.XX", DomainType.PRIVATE));
+        Assert.assertEquals("xx", matcher.getDomainRoot("www.blah.blah.example.XX", DomainType.PRIVATE));
+        Assert.assertEquals("appspot.com", matcher.getDomainRoot("example.appspot.com"));
         // Too short
-        Assert.assertEquals(null, matcher.getDomainRoot("xx", DomainType.PRIVATE));
         Assert.assertEquals(null, matcher.getDomainRoot("jp", DomainType.PRIVATE));
         Assert.assertEquals(null, matcher.getDomainRoot("ac.jp", DomainType.PRIVATE));
         Assert.assertEquals(null, matcher.getDomainRoot("any.tokyo.jp", DomainType.PRIVATE));
@@ -128,6 +128,8 @@ public class TestPublicSuffixMatcher {
         Assert.assertTrue(matcher.matches(".any.tokyo.jp"));
         // exception
         Assert.assertFalse(matcher.matches(".metro.tokyo.jp"));
+        Assert.assertFalse(matcher.matches(".xx"));
+        Assert.assertFalse(matcher.matches(".appspot.com"));
     }
 
     @Test


=====================================
httpclient/src/test/java/org/apache/http/impl/client/TestDefaultRedirectStrategy.java
=====================================
@@ -112,6 +112,18 @@ public class TestDefaultRedirectStrategy {
         Assert.assertFalse(redirectStrategy.isRedirected(httppost, response, context));
     }
 
+    @Test
+    public void testIsRedirectedPermanentRedirect() throws Exception {
+        final DefaultRedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
+        final HttpClientContext context = HttpClientContext.create();
+        final HttpGet httpget = new HttpGet("http://localhost/");
+        final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1,
+                DefaultRedirectStrategy.SC_PERMANENT_REDIRECT, "Redirect");
+        Assert.assertTrue(redirectStrategy.isRedirected(httpget, response, context));
+        final HttpPost httppost = new HttpPost("http://localhost/");
+        Assert.assertFalse(redirectStrategy.isRedirected(httppost, response, context));
+    }
+
     @Test
     public void testIsRedirectedSeeOther() throws Exception {
         final DefaultRedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
@@ -385,6 +397,27 @@ public class TestDefaultRedirectStrategy {
         Assert.assertSame(entity, ((HttpEntityEnclosingRequest) redirect2).getEntity());
     }
 
+    @Test
+    public void testGetRedirectRequestForPermanentRedirect() throws Exception {
+        final DefaultRedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
+        final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1,
+                DefaultRedirectStrategy.SC_PERMANENT_REDIRECT, "Permanent Redirect");
+        response.addHeader("Location", "http://localhost/stuff");
+        final HttpContext context1 = new BasicHttpContext();
+        final HttpUriRequest redirect1 = redirectStrategy.getRedirect(
+                new HttpTrace("http://localhost/"), response, context1);
+        Assert.assertEquals("TRACE", redirect1.getMethod());
+        final HttpContext context2 = new BasicHttpContext();
+        final HttpPost httppost = new HttpPost("http://localhost/");
+        final HttpEntity entity = new BasicHttpEntity();
+        httppost.setEntity(entity);
+        final HttpUriRequest redirect2 = redirectStrategy.getRedirect(
+                httppost, response, context2);
+        Assert.assertEquals("POST", redirect2.getMethod());
+        Assert.assertTrue(redirect2 instanceof HttpEntityEnclosingRequest);
+        Assert.assertSame(entity, ((HttpEntityEnclosingRequest) redirect2).getEntity());
+    }
+
     @Test(expected=ProtocolException.class)
     public void testCreateLocationURIInvalid() throws Exception {
         final DefaultRedirectStrategy redirectStrategy = new DefaultRedirectStrategy();


=====================================
httpclient/src/test/java/org/apache/http/impl/client/integration/TestRedirects.java
=====================================
@@ -26,11 +26,13 @@
  */
 package org.apache.http.impl.client.integration;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.net.URI;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.http.Consts;
 import org.apache.http.Header;
 import org.apache.http.HttpException;
 import org.apache.http.HttpHost;
@@ -49,14 +51,18 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.protocol.HttpClientContext;
 import org.apache.http.client.utils.URIUtils;
 import org.apache.http.cookie.SM;
+import org.apache.http.entity.InputStreamEntity;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.BasicCookieStore;
+import org.apache.http.impl.client.LaxRedirectStrategy;
 import org.apache.http.impl.cookie.BasicClientCookie;
+import org.apache.http.localserver.EchoHandler;
 import org.apache.http.localserver.LocalServerTestBase;
 import org.apache.http.message.BasicHeader;
 import org.apache.http.protocol.HTTP;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpCoreContext;
+import org.apache.http.protocol.HttpExpectationVerifier;
 import org.apache.http.protocol.HttpRequestHandler;
 import org.apache.http.protocol.UriHttpRequestHandlerMapper;
 import org.apache.http.util.EntityUtils;
@@ -105,6 +111,37 @@ public class TestRedirects extends LocalServerTestBase {
 
     }
 
+    private static class RedirectExpectationVerifier implements HttpExpectationVerifier {
+
+        private final int statuscode;
+
+        public RedirectExpectationVerifier(final int statuscode) {
+            super();
+            this.statuscode = statuscode > 0 ? statuscode : HttpStatus.SC_MOVED_TEMPORARILY;
+        }
+
+        public RedirectExpectationVerifier() {
+            this(-1);
+        }
+
+        @Override
+        public void verify(
+                final HttpRequest request, final HttpResponse response, final HttpContext context) throws HttpException {
+            final HttpInetConnection conn = (HttpInetConnection) context.getAttribute(HttpCoreContext.HTTP_CONNECTION);
+            final int port = conn.getLocalPort();
+            final String uri = request.getRequestLine().getUri();
+            if (uri.equals("/oldlocation/")) {
+                response.setStatusCode(this.statuscode);
+                response.addHeader(new BasicHeader("Location",
+                        "http://localhost:" + port + "/newlocation/"));
+                response.addHeader(new BasicHeader("Connection", "close"));
+            } else {
+                response.setStatusCode(HttpStatus.SC_CONTINUE);
+            }
+        }
+
+    }
+
     private static class CircularRedirectService implements HttpRequestHandler {
 
         public CircularRedirectService() {
@@ -586,6 +623,133 @@ public class TestRedirects extends LocalServerTestBase {
         Assert.assertEquals("GET", reqWrapper.getRequestLine().getMethod());
     }
 
+    @Test
+    public void testPostRedirectMovedPermatently() throws Exception {
+        this.serverBootstrap.registerHandler("*", new BasicRedirectService(HttpStatus.SC_MOVED_PERMANENTLY));
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        httppost.setEntity(new StringEntity("stuff"));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+        Assert.assertEquals(HttpStatus.SC_MOVED_PERMANENTLY, response.getStatusLine().getStatusCode());
+    }
+
+    @Test
+    public void testPostRedirectMovedPermatentlyLaxStrategy() throws Exception {
+        this.serverBootstrap.registerHandler("*", new BasicRedirectService(HttpStatus.SC_MOVED_PERMANENTLY));
+        this.clientBuilder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE);
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        httppost.setEntity(new StringEntity("stuff"));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+
+        final HttpRequest reqWrapper = context.getRequest();
+
+        Assert.assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
+        Assert.assertEquals("/newlocation/", reqWrapper.getRequestLine().getUri());
+        Assert.assertEquals("GET", reqWrapper.getRequestLine().getMethod());
+    }
+
+    @Test
+    public void testPostTemporaryRedirectLaxStrategy() throws Exception {
+        this.serverBootstrap.registerHandler("*", new BasicRedirectService(HttpStatus.SC_TEMPORARY_REDIRECT));
+        this.clientBuilder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE);
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        httppost.setEntity(new StringEntity("stuff"));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+
+        final HttpRequest reqWrapper = context.getRequest();
+
+        Assert.assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
+        Assert.assertEquals("/newlocation/", reqWrapper.getRequestLine().getUri());
+        Assert.assertEquals("POST", reqWrapper.getRequestLine().getMethod());
+    }
+
+    @Test
+    public void testNonRepeatablePostTemporaryRedirectLaxStrategy() throws Exception {
+        this.serverBootstrap.registerHandler("*", new BasicRedirectService(HttpStatus.SC_TEMPORARY_REDIRECT));
+        this.clientBuilder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE);
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        final byte[] content = "stuff".getBytes(Consts.ASCII);
+        httppost.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+        Assert.assertEquals(HttpStatus.SC_TEMPORARY_REDIRECT, response.getStatusLine().getStatusCode());
+    }
+
+    @Test
+    public void testNonRepeatablePostTemporaryWithExpectContinueRedirectLaxStrategy() throws Exception {
+        this.serverBootstrap.registerHandler("*", new BasicRedirectService(HttpStatus.SC_TEMPORARY_REDIRECT));
+        this.clientBuilder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE);
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+        context.setRequestConfig(RequestConfig.custom()
+                .setExpectContinueEnabled(true)
+                .build());
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        final byte[] content = "stuff".getBytes(Consts.ASCII);
+        httppost.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+        Assert.assertEquals(HttpStatus.SC_TEMPORARY_REDIRECT, response.getStatusLine().getStatusCode());
+    }
+
+    @Test
+    public void testNonRepeatablePostTemporaryWithExpectContinueExpectVerifierRedirectLaxStrategy() throws Exception {
+        this.serverBootstrap.registerHandler("*", new EchoHandler());
+        this.serverBootstrap.setExpectationVerifier(new RedirectExpectationVerifier(HttpStatus.SC_TEMPORARY_REDIRECT));
+
+        this.clientBuilder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE);
+
+        final HttpHost target = start();
+
+        final HttpClientContext context = HttpClientContext.create();
+        context.setRequestConfig(RequestConfig.custom()
+                .setExpectContinueEnabled(true)
+                .build());
+
+        final HttpPost httppost = new HttpPost("/oldlocation/");
+        final byte[] content = "stuff".getBytes(Consts.ASCII);
+        httppost.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));
+
+        final HttpResponse response = this.httpclient.execute(target, httppost, context);
+        EntityUtils.consume(response.getEntity());
+
+        final HttpRequest reqWrapper = context.getRequest();
+
+        Assert.assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
+        Assert.assertEquals("/newlocation/", reqWrapper.getRequestLine().getUri());
+        Assert.assertEquals("POST", reqWrapper.getRequestLine().getMethod());
+    }
+
     @Test
     public void testRelativeRedirect() throws Exception {
         this.serverBootstrap.registerHandler("*", new RelativeRedirectService());


=====================================
httpclient/src/test/resources/suffixlistmatcher.txt
=====================================
@@ -26,6 +26,8 @@
 // ===BEGIN PRIVATE DOMAINS===
 xx
 lan
+appspot.com
+s3.eu-central-1.amazonaws.com
 // ===END PRIVATE DOMAINS===
 
 // ===BEGIN ICANN DOMAINS===


=====================================
httpmime/pom.xml
=====================================
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpcomponents-client</artifactId>
-    <version>4.5.11</version>
+    <version>4.5.12</version>
   </parent>
   <artifactId>httpmime</artifactId>
   <name>Apache HttpClient Mime</name>


=====================================
pom.xml
=====================================
@@ -32,7 +32,7 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>httpcomponents-client</artifactId>
   <name>Apache HttpComponents Client</name>
-  <version>4.5.11</version>
+  <version>4.5.12</version>
   <description>Apache HttpComponents Client is a library of components for building client side HTTP services</description>
   <url>http://hc.apache.org/httpcomponents-client-ga/</url>
   <inceptionYear>1999</inceptionYear>
@@ -60,7 +60,7 @@
     <connection>scm:git:https://git-wip-us.apache.org/repos/asf/httpcomponents-client.git</connection>
     <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/httpcomponents-client.git</developerConnection>
     <url>https://github.com/apache/httpcomponents-client/tree/${project.scm.tag}</url>
-    <tag>4.5.11</tag>
+    <tag>4.5.12</tag>
   </scm>
 
   <properties>



View it on GitLab: https://salsa.debian.org/java-team/httpcomponents-client/-/commit/95770a427c5966ec7981ea5ff01982c4f68d0192

-- 
View it on GitLab: https://salsa.debian.org/java-team/httpcomponents-client/-/commit/95770a427c5966ec7981ea5ff01982c4f68d0192
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20200903/5b250944/attachment.html>


More information about the pkg-java-commits mailing list