| /* |
| * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Oracle designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Oracle in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| /* |
| * NOTE: this file was copied from javax.net.ssl.HttpsURLConnection |
| */ |
| |
| package com.sun.net.ssl; |
| |
| import java.net.URL; |
| import java.net.HttpURLConnection; |
| import java.io.IOException; |
| import javax.net.SocketFactory; |
| import javax.net.ssl.SSLSocketFactory; |
| |
| import javax.security.cert.X509Certificate; |
| |
| /** |
| * HTTP URL connection with support for HTTPS-specific features. See |
| * <A HREF="http://www.w3.org/pub/WWW/Protocols/"> the spec </A> for |
| * details. |
| * |
| * @deprecated As of JDK 1.4, this implementation-specific class was |
| * replaced by {@link javax.net.ssl.HttpsURLConnection}. |
| */ |
| @Deprecated |
| abstract public |
| class HttpsURLConnection extends HttpURLConnection |
| { |
| /* |
| * Initialize an HTTPS URLConnection ... could check that the URL |
| * is an "https" URL, and that the handler is also an HTTPS one, |
| * but that's established by other code in this package. |
| * @param url the URL |
| */ |
| public HttpsURLConnection(URL url) throws IOException { |
| super(url); |
| } |
| |
| /** |
| * Returns the cipher suite in use on this connection. |
| * @return the cipher suite |
| */ |
| public abstract String getCipherSuite(); |
| |
| /** |
| * Returns the server's X.509 certificate chain, or null if |
| * the server did not authenticate. |
| * @return the server certificate chain |
| */ |
| public abstract X509Certificate [] getServerCertificateChain(); |
| |
| /** |
| * HostnameVerifier provides a callback mechanism so that |
| * implementers of this interface can supply a policy for |
| * handling the case where the host to connect to and |
| * the server name from the certificate mismatch. |
| * |
| * The default implementation will deny such connections. |
| */ |
| private static HostnameVerifier defaultHostnameVerifier = |
| new HostnameVerifier() { |
| public boolean verify(String urlHostname, String certHostname) { |
| return false; |
| } |
| }; |
| |
| protected HostnameVerifier hostnameVerifier = defaultHostnameVerifier; |
| |
| /** |
| * Sets the default HostnameVerifier inherited when an instance |
| * of this class is created. |
| * @param v the default host name verifier |
| */ |
| public static void setDefaultHostnameVerifier(HostnameVerifier v) { |
| if (v == null) { |
| throw new IllegalArgumentException( |
| "no default HostnameVerifier specified"); |
| } |
| |
| SecurityManager sm = System.getSecurityManager(); |
| if (sm != null) { |
| sm.checkPermission(new SSLPermission("setHostnameVerifier")); |
| } |
| defaultHostnameVerifier = v; |
| } |
| |
| /** |
| * Gets the default HostnameVerifier. |
| * @return the default host name verifier |
| */ |
| public static HostnameVerifier getDefaultHostnameVerifier() { |
| return defaultHostnameVerifier; |
| } |
| |
| /** |
| * Sets the HostnameVerifier. |
| * @param v the host name verifier |
| */ |
| public void setHostnameVerifier(HostnameVerifier v) { |
| if (v == null) { |
| throw new IllegalArgumentException( |
| "no HostnameVerifier specified"); |
| } |
| |
| hostnameVerifier = v; |
| } |
| |
| /** |
| * Gets the HostnameVerifier. |
| * @return the host name verifier |
| */ |
| public HostnameVerifier getHostnameVerifier() { |
| return hostnameVerifier; |
| } |
| |
| private static SSLSocketFactory defaultSSLSocketFactory = null; |
| |
| private SSLSocketFactory sslSocketFactory = getDefaultSSLSocketFactory(); |
| |
| /** |
| * Sets the default SSL socket factory inherited when an instance |
| * of this class is created. |
| * @param sf the default SSL socket factory |
| */ |
| public static void setDefaultSSLSocketFactory(SSLSocketFactory sf) { |
| if (sf == null) { |
| throw new IllegalArgumentException( |
| "no default SSLSocketFactory specified"); |
| } |
| |
| SecurityManager sm = System.getSecurityManager(); |
| if (sm != null) { |
| sm.checkSetFactory(); |
| } |
| defaultSSLSocketFactory = sf; |
| } |
| |
| /** |
| * Gets the default SSL socket factory. |
| * @return the default SSL socket factory |
| */ |
| public static SSLSocketFactory getDefaultSSLSocketFactory() { |
| if (defaultSSLSocketFactory == null) { |
| defaultSSLSocketFactory = |
| (SSLSocketFactory)SSLSocketFactory.getDefault(); |
| } |
| return defaultSSLSocketFactory; |
| } |
| |
| /** |
| * Sets the SSL socket factory. |
| * @param sf the SSL socket factory |
| */ |
| public void setSSLSocketFactory(SSLSocketFactory sf) { |
| if (sf == null) { |
| throw new IllegalArgumentException( |
| "no SSLSocketFactory specified"); |
| } |
| |
| SecurityManager sm = System.getSecurityManager(); |
| if (sm != null) { |
| sm.checkSetFactory(); |
| } |
| |
| sslSocketFactory = sf; |
| } |
| |
| /** |
| * Gets the SSL socket factory. |
| * @return the SSL socket factory |
| */ |
| public SSLSocketFactory getSSLSocketFactory() { |
| return sslSocketFactory; |
| } |
| } |