001/* 002 * ==================================================================== 003 * Licensed to the Apache Software Foundation (ASF) under one 004 * or more contributor license agreements. See the NOTICE file 005 * distributed with this work for additional information 006 * regarding copyright ownership. The ASF licenses this file 007 * to you under the Apache License, Version 2.0 (the 008 * "License"); you may not use this file except in compliance 009 * with the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, 014 * software distributed under the License is distributed on an 015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 016 * KIND, either express or implied. See the License for the 017 * specific language governing permissions and limitations 018 * under the License. 019 * ==================================================================== 020 * 021 * This software consists of voluntary contributions made by many 022 * individuals on behalf of the Apache Software Foundation. For more 023 * information on the Apache Software Foundation, please see 024 * <http://www.apache.org/>. 025 * 026 */ 027 028package org.apache.http.conn.ssl; 029 030import javax.net.ssl.SSLException; 031 032import org.apache.http.annotation.Contract; 033import org.apache.http.annotation.ThreadingBehavior; 034 035/** 036 * The HostnameVerifier that works the same way as Curl and Firefox. 037 * <p> 038 * The hostname must match either the first CN, or any of the subject-alts. 039 * A wildcard can occur in the CN, and in any of the subject-alts. 040 * </p> 041 * <p> 042 * The only difference between BROWSER_COMPATIBLE and STRICT is that a wildcard 043 * (such as "*.foo.com") with BROWSER_COMPATIBLE matches all subdomains, 044 * including "a.b.foo.com". 045 * </p> 046 * 047 * @since 4.0 048 * 049 * @deprecated (4.4) Use {@link org.apache.http.conn.ssl.DefaultHostnameVerifier} 050 */ 051@Contract(threading = ThreadingBehavior.IMMUTABLE) 052@Deprecated 053public class BrowserCompatHostnameVerifier extends AbstractVerifier { 054 055 public static final BrowserCompatHostnameVerifier INSTANCE = new BrowserCompatHostnameVerifier(); 056 057 @Override 058 public final void verify( 059 final String host, 060 final String[] cns, 061 final String[] subjectAlts) throws SSLException { 062 verify(host, cns, subjectAlts, false); 063 } 064 065 @Override 066 public final String toString() { 067 return "BROWSER_COMPATIBLE"; 068 } 069 070}