8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * The contents of this file are subject to the terms
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * of the Common Development and Distribution License
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * (the License). You may not use this file except in
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * compliance with the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * You can obtain a copy of the License at
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * opensso/legal/CDDLv1.0.txt
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * See the License for the specific language governing
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * permission and limitations under the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When distributing Covered Code, include this CDDL
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Header Notice in each file and include the License file
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * at opensso/legal/CDDLv1.0.txt.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If applicable, add the following below the CDDL Header,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * with the fields enclosed by brackets [] replaced by
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * your own identifying information:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * $Id: Https.java,v 1.3 2008/06/25 05:43:54 qcheng Exp $
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/*
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper * Portions Copyrighted 2011-2013 ForgeRock AS
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpackage com.sun.identity.protocol.https;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport javax.net.ssl.HttpsURLConnection;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport javax.net.ssl.SSLSocketFactory;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeperimport com.sun.identity.security.keystore.AMX509KeyManager;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.identity.shared.debug.Debug;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.identity.protocol.SSLSocketFactoryManager;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpublic class Https {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper private static Debug debug = Debug.getInstance("amJSSE");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster static {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper try {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper SSLSocketFactory sf = SSLSocketFactoryManager.getSocketFactory();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster HttpsURLConnection.setDefaultSSLSocketFactory(sf);
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper HttpsURLConnection.setDefaultHostnameVerifier(new AMHostnameVerifier());
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper } catch (Exception e) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper debug.error("Exception in Https static initializer " + e.getMessage(), e);
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper public static void init() {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper init(null);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper public static void init(String alias) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper if (alias != null && !alias.trim().isEmpty()) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper AMX509KeyManager manager = SSLSocketFactoryManager.getKeyStoreMgr();
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper if (manager != null) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper manager.setAlias(alias);
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper } else {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper if (debug.messageEnabled()) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper debug.message("Https.init: AMX509KeyManager was null when trying to set alias: " + alias);
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper }
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper }
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper } else {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper if (debug.messageEnabled()) {
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper debug.message("Https.init: Alias was null or empty");
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper }
01e48b8a531351d97116c7d675b3bc8af414a328Mark de Reeper }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster}
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster