use of java.net.SecureCacheResponse in project okhttp by square.
the class JavaApiConverter method createJavaCacheResponse.
/**
* Creates a {@link java.net.CacheResponse} of the correct (sub)type using information gathered
* from the supplied {@link Response}.
*/
public static CacheResponse createJavaCacheResponse(final Response response) {
final Headers headers = withSyntheticHeaders(response);
final ResponseBody body = response.body();
if (response.request().isHttps()) {
final Handshake handshake = response.handshake();
return new SecureCacheResponse() {
@Override
public String getCipherSuite() {
return handshake != null ? handshake.cipherSuite().javaName() : null;
}
@Override
public List<Certificate> getLocalCertificateChain() {
if (handshake == null)
return null;
// Java requires null, not an empty list here.
List<Certificate> certificates = handshake.localCertificates();
return certificates.size() > 0 ? certificates : null;
}
@Override
public List<Certificate> getServerCertificateChain() throws SSLPeerUnverifiedException {
if (handshake == null)
return null;
// Java requires null, not an empty list here.
List<Certificate> certificates = handshake.peerCertificates();
return certificates.size() > 0 ? certificates : null;
}
@Override
public Principal getPeerPrincipal() throws SSLPeerUnverifiedException {
if (handshake == null)
return null;
return handshake.peerPrincipal();
}
@Override
public Principal getLocalPrincipal() {
if (handshake == null)
return null;
return handshake.localPrincipal();
}
@Override
public Map<String, List<String>> getHeaders() throws IOException {
// Java requires that the entry with a null key be the status line.
return JavaNetHeaders.toMultimap(headers, StatusLine.get(response).toString());
}
@Override
public InputStream getBody() throws IOException {
if (body == null)
return null;
return body.byteStream();
}
};
} else {
return new CacheResponse() {
@Override
public Map<String, List<String>> getHeaders() throws IOException {
// Java requires that the entry with a null key be the status line.
return JavaNetHeaders.toMultimap(headers, StatusLine.get(response).toString());
}
@Override
public InputStream getBody() throws IOException {
if (body == null)
return null;
return body.byteStream();
}
};
}
}
use of java.net.SecureCacheResponse in project XobotOS by xamarin.
the class HttpsURLConnectionImpl method getLocalCertificates.
@Override
public Certificate[] getLocalCertificates() {
SecureCacheResponse cacheResponse = delegate.getCacheResponse();
if (cacheResponse != null) {
List<Certificate> result = cacheResponse.getLocalCertificateChain();
return result != null ? result.toArray(new Certificate[result.size()]) : null;
}
checkConnected();
return delegate.getSSLSocket().getSession().getLocalCertificates();
}
use of java.net.SecureCacheResponse in project XobotOS by xamarin.
the class HttpsURLConnectionImpl method getCipherSuite.
@Override
public String getCipherSuite() {
SecureCacheResponse cacheResponse = delegate.getCacheResponse();
if (cacheResponse != null) {
return cacheResponse.getCipherSuite();
}
checkConnected();
return delegate.getSSLSocket().getSession().getCipherSuite();
}
use of java.net.SecureCacheResponse in project XobotOS by xamarin.
the class HttpsURLConnectionImpl method getLocalPrincipal.
@Override
public Principal getLocalPrincipal() {
SecureCacheResponse cacheResponse = delegate.getCacheResponse();
if (cacheResponse != null) {
return cacheResponse.getLocalPrincipal();
}
checkConnected();
return delegate.getSSLSocket().getSession().getLocalPrincipal();
}
use of java.net.SecureCacheResponse in project robovm by robovm.
the class HttpsURLConnectionImpl method getLocalPrincipal.
@Override
public Principal getLocalPrincipal() {
SecureCacheResponse cacheResponse = delegate.getSecureCacheResponse();
if (cacheResponse != null) {
return cacheResponse.getLocalPrincipal();
}
SSLSocket sslSocket = getSslSocket();
if (sslSocket != null) {
return sslSocket.getSession().getLocalPrincipal();
}
return null;
}
Aggregations