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; 029 030import javax.net.ssl.SSLSession; 031 032import org.apache.http.HttpInetConnection; 033import org.apache.http.conn.routing.HttpRoute; 034 035/** 036 * Interface to access routing information of a client side connection. 037 * 038 * @since 4.1 039 * 040 * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}. 041 */ 042@Deprecated 043public interface HttpRoutedConnection extends HttpInetConnection { 044 045 /** 046 * Indicates whether this connection is secure. 047 * The return value is well-defined only while the connection is open. 048 * It may change even while the connection is open. 049 * 050 * @return {@code true} if this connection is secure, 051 * {@code false} otherwise 052 */ 053 boolean isSecure(); 054 055 /** 056 * Obtains the current route of this connection. 057 * 058 * @return the route established so far, or 059 * {@code null} if not connected 060 */ 061 HttpRoute getRoute(); 062 063 /** 064 * Obtains the SSL session of the underlying connection, if any. 065 * If this connection is open, and the underlying socket is an 066 * {@link javax.net.ssl.SSLSocket SSLSocket}, the SSL session of 067 * that socket is obtained. This is a potentially blocking operation. 068 * <p> 069 * <b>Note:</b> Whether the underlying socket is an SSL socket 070 * can not necessarily be determined via {@link #isSecure}. 071 * Plain sockets may be considered secure, for example if they are 072 * connected to a known host in the same network segment. 073 * On the other hand, SSL sockets may be considered insecure, 074 * for example depending on the chosen cipher suite. 075 * </p> 076 * 077 * @return the underlying SSL session if available, 078 * {@code null} otherwise 079 */ 080 SSLSession getSSLSession(); 081 082}