src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java
changeset 54579 270557b396eb
parent 53521 41fa3e6f2785
equal deleted inserted replaced
54578:895a6a380484 54579:270557b396eb
   176     public static final BiPredicate<String, String> CONTEXT_RESTRICTED(HttpClient client) {
   176     public static final BiPredicate<String, String> CONTEXT_RESTRICTED(HttpClient client) {
   177         return (k, v) -> client.authenticator() == null ||
   177         return (k, v) -> client.authenticator() == null ||
   178                 ! (k.equalsIgnoreCase("Authorization")
   178                 ! (k.equalsIgnoreCase("Authorization")
   179                         && k.equalsIgnoreCase("Proxy-Authorization"));
   179                         && k.equalsIgnoreCase("Proxy-Authorization"));
   180     }
   180     }
   181 
   181     private static final BiPredicate<String, String> HOST_RESTRICTED = (k,v) -> !"host".equalsIgnoreCase(k);
       
   182     public static final BiPredicate<String, String> PROXY_TUNNEL_RESTRICTED(HttpClient client)  {
       
   183         return CONTEXT_RESTRICTED(client).and(HOST_RESTRICTED);
       
   184     }
       
   185 
       
   186     private static final Predicate<String> IS_HOST = "host"::equalsIgnoreCase;
   182     private static final Predicate<String> IS_PROXY_HEADER = (k) ->
   187     private static final Predicate<String> IS_PROXY_HEADER = (k) ->
   183             k != null && k.length() > 6 && "proxy-".equalsIgnoreCase(k.substring(0,6));
   188             k != null && k.length() > 6 && "proxy-".equalsIgnoreCase(k.substring(0,6));
   184     private static final Predicate<String> NO_PROXY_HEADER =
   189     private static final Predicate<String> NO_PROXY_HEADER =
   185             IS_PROXY_HEADER.negate();
   190             IS_PROXY_HEADER.negate();
   186     private static final Predicate<String> ALL_HEADERS = (s) -> true;
   191     private static final Predicate<String> ALL_HEADERS = (s) -> true;
   248         return true;
   253         return true;
   249     }
   254     }
   250 
   255 
   251     public static final BiPredicate<String, String> PROXY_TUNNEL_FILTER =
   256     public static final BiPredicate<String, String> PROXY_TUNNEL_FILTER =
   252             (s,v) -> isAllowedForProxy(s, v, PROXY_AUTH_TUNNEL_DISABLED_SCHEMES,
   257             (s,v) -> isAllowedForProxy(s, v, PROXY_AUTH_TUNNEL_DISABLED_SCHEMES,
   253                     IS_PROXY_HEADER);
   258                     // Allows Proxy-* and Host headers when establishing the tunnel.
       
   259                     IS_PROXY_HEADER.or(IS_HOST));
   254     public static final BiPredicate<String, String> PROXY_FILTER =
   260     public static final BiPredicate<String, String> PROXY_FILTER =
   255             (s,v) -> isAllowedForProxy(s, v, PROXY_AUTH_DISABLED_SCHEMES,
   261             (s,v) -> isAllowedForProxy(s, v, PROXY_AUTH_DISABLED_SCHEMES,
   256                     ALL_HEADERS);
   262                     ALL_HEADERS);
   257     public static final BiPredicate<String, String> NO_PROXY_HEADERS_FILTER =
   263     public static final BiPredicate<String, String> NO_PROXY_HEADERS_FILTER =
   258             (n,v) -> Utils.NO_PROXY_HEADER.test(n);
   264             (n,v) -> Utils.NO_PROXY_HEADER.test(n);