⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpsprotocolsupport.java

📁 这是远程web服务调用的一个包,可以将JSP直接作为服务
💻 JAVA
字号:
package com.meterware.httpunit;/********************************************************************************************************************* $Id: HttpsProtocolSupport.java,v 1.1 2003/02/04 19:17:26 russgold Exp $** Copyright (c) 2003, Russell Gold** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated* documentation files (the "Software"), to deal in the Software without restriction, including without limitation* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and* to permit persons to whom the Software is furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in all copies or substantial portions* of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER* DEALINGS IN THE SOFTWARE.********************************************************************************************************************/import java.security.Provider;import java.security.Security;/** * Encapsulates support for the HTTPS protocol. * * @author <a href="mailto:russgold@httpunit.org">Russell Gold</a> **/abstract public class HttpsProtocolSupport {    /** The name of the system parameter used by java.net to locate protocol handlers. **/    private final static String PROTOCOL_HANDLER_PKGS  = "java.protocol.handler.pkgs";    /** The name of the JSSE class which provides support for SSL. **/    private final static String SunJSSE_PROVIDER_CLASS = "com.sun.net.ssl.internal.ssl.Provider";    /** The name of the JSSE class which supports the https protocol. **/    private final static String SSL_PROTOCOL_HANDLER   = "com.sun.net.ssl.internal.www.protocol";    private static Class _httpsProviderClass;    private static boolean _httpsSupportVerified;    private static boolean _httpsProtocolSupportEnabled;    /**     * Returns true if the JSSE extension is installed.     */    static boolean hasHttpsSupport() {        if (!_httpsSupportVerified) {            try {                getHttpsProviderClass();            } catch (ClassNotFoundException e) {            }            _httpsSupportVerified = true;        }        return _httpsProviderClass != null;    }    /**     * Attempts to register the JSSE extension if it is not already registered. Will throw an exception if unable to     * register the extension.     */    static void verifyProtocolSupport( String protocol ) {        if (protocol.equalsIgnoreCase( "http" )) {            return;        } else if (protocol.equalsIgnoreCase( "https" )) {            validateHttpsProtocolSupport();        }    }    private static void validateHttpsProtocolSupport() {        if (!_httpsProtocolSupportEnabled) {            verifyHttpsSupport();            _httpsProtocolSupportEnabled = true;        }    }    private static void verifyHttpsSupport() {        try {            Class providerClass = getHttpsProviderClass();            if (!hasProvider( providerClass )) Security.addProvider( (Provider) providerClass.newInstance() );            registerSSLProtocolHandler();        } catch (ClassNotFoundException e) {            throw new RuntimeException( "https support requires the Java Secure Sockets Extension. See http://java.sun.com/products/jsse" );        } catch (Throwable e) {            throw new RuntimeException( "Unable to enable https support. Make sure that you have installed JSSE " +                                        "as described in http://java.sun.com/products/jsse/install.html: " + e );        }    }    private static Class getHttpsProviderClass() throws ClassNotFoundException {        if (_httpsProviderClass == null) {            _httpsProviderClass = Class.forName( SunJSSE_PROVIDER_CLASS );        }        return _httpsProviderClass;    }    private static boolean hasProvider( Class providerClass ) {        Provider[] list = Security.getProviders();        for (int i = 0; i < list.length; i++) {            if (list[i].getClass().equals( providerClass )) return true;        }        return false;    }    private static void registerSSLProtocolHandler() {        String list = System.getProperty( PROTOCOL_HANDLER_PKGS );        if (list == null || list.length() == 0) {            System.setProperty( PROTOCOL_HANDLER_PKGS, SSL_PROTOCOL_HANDLER );        } else if (list.indexOf( SSL_PROTOCOL_HANDLER ) < 0) {            System.setProperty( PROTOCOL_HANDLER_PKGS, SSL_PROTOCOL_HANDLER + " | " + list );        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -