114114import javax .net .ssl .ExtendedSSLSession ;
115115import javax .net .ssl .HandshakeCompletedListener ;
116116import javax .net .ssl .HostnameVerifier ;
117+ import javax .net .ssl .SSLParameters ;
117118import javax .net .ssl .SSLPeerUnverifiedException ;
118119import javax .net .ssl .SSLSession ;
119120import javax .net .ssl .SSLSessionContext ;
@@ -231,7 +232,8 @@ private static Map<ErrorCode, Status> buildErrorCodeToStatusMap() {
231232 private final boolean useGetForSafeMethods ;
232233 @ GuardedBy ("lock" )
233234 private final TransportTracer transportTracer ;
234- private final ConcurrentHashMap <String , Boolean > authoritiesAllowedForPeer = new ConcurrentHashMap <>();
235+ private final ConcurrentHashMap <String , Boolean > authoritiesAllowedForPeer =
236+ new ConcurrentHashMap <>();
235237
236238 @ GuardedBy ("lock" )
237239 private final InUseStateAggregator <OkHttpClientStream > inUseState =
@@ -429,7 +431,8 @@ public ClientStream newStream(
429431 Preconditions .checkNotNull (headers , "headers" );
430432 StatsTraceContext statsTraceContext =
431433 StatsTraceContext .newClientContext (tracers , getAttributes (), headers );
432- if (socket instanceof SSLSocket && callOptions .getAuthority () != null && channelCredentials != null && channelCredentials instanceof TlsChannelCredentials ) {
434+ if (socket instanceof SSLSocket && callOptions .getAuthority () != null
435+ && channelCredentials != null && channelCredentials instanceof TlsChannelCredentials ) {
433436 boolean isAuthorityValid ;
434437 if (authoritiesAllowedForPeer .containsKey (callOptions .getAuthority ())) {
435438 isAuthorityValid = authoritiesAllowedForPeer .get (callOptions .getAuthority ());
@@ -446,8 +449,8 @@ public ClientStream newStream(
446449 }
447450 if (!x509ExtendedTrustManager .isPresent ()) {
448451 return new FailingClientStream (Status .INTERNAL .withDescription (
449- "Can't allow authority override in rpc when X509ExtendedTrustManager is not available" ),
450- tracers );
452+ "Can't allow authority override in rpc when X509ExtendedTrustManager is not "
453+ + "available" ), tracers );
451454 }
452455 try {
453456 Certificate [] peerCertificates = sslSession .getPeerCertificates ();
@@ -495,8 +498,8 @@ private Optional<TrustManager> getX509ExtendedTrustManager(TlsChannelCredentials
495498 x509ExtendedTrustManager = tlsCreds .getTrustManagers ().stream ().filter (
496499 trustManager -> trustManager instanceof X509ExtendedTrustManager ).findFirst ();
497500 } else if (tlsCreds .getRootCertificates () != null ) {
498- x509ExtendedTrustManager = CertificateUtils .getX509ExtendedTrustManager (new ByteArrayInputStream (
499- tlsCreds .getRootCertificates ()));
501+ x509ExtendedTrustManager = CertificateUtils .getX509ExtendedTrustManager (
502+ new ByteArrayInputStream ( tlsCreds .getRootCertificates ()));
500503 } else { // else use system default
501504 TrustManagerFactory tmf = TrustManagerFactory .getInstance (
502505 TrustManagerFactory .getDefaultAlgorithm ());
@@ -1573,6 +1576,13 @@ public boolean isConnected() {
15731576 return sslSocket .isConnected ();
15741577 }
15751578
1579+ @ Override
1580+ public SSLParameters getSSLParameters () {
1581+ SSLParameters sslParameters = sslSocket .getSSLParameters ();
1582+ sslParameters .setEndpointIdentificationAlgorithm ("HTTPS" );
1583+ return sslParameters ;
1584+ }
1585+
15761586 @ Override
15771587 public String [] getSupportedCipherSuites () {
15781588 return new String [0 ];
@@ -1669,7 +1679,7 @@ public boolean getEnableSessionCreation() {
16691679 /**
16701680 * Fake SSLSession instance that provides the peer host name to verify for per-rpc check.
16711681 */
1672- static class FakeSslSession extends ExtendedSSLSession {
1682+ static class FakeSslSession implements SSLSession {
16731683
16741684 private final String peerHost ;
16751685
@@ -1683,8 +1693,9 @@ public String getPeerHost() {
16831693 }
16841694
16851695 @ SuppressWarnings ("deprecation" )
1686- public javax .security .cert .X509Certificate [] getPeerCertificateChain () throws SSLPeerUnverifiedException {
1687- throw new UnsupportedOperationException ("This method is deprecated and marked for removal. Use the getPeerCertificates() method instead." );
1696+ public javax .security .cert .X509Certificate [] getPeerCertificateChain () {
1697+ throw new UnsupportedOperationException ("This method is deprecated and marked for removal. "
1698+ + "Use the getPeerCertificates() method instead." );
16881699 }
16891700
16901701 @ Override
@@ -1781,15 +1792,5 @@ public int getPacketBufferSize() {
17811792 public int getApplicationBufferSize () {
17821793 return 0 ;
17831794 }
1784-
1785- @ Override
1786- public String [] getLocalSupportedSignatureAlgorithms () {
1787- return new String [0 ];
1788- }
1789-
1790- @ Override
1791- public String [] getPeerSupportedSignatureAlgorithms () {
1792- return new String [0 ];
1793- }
17941795 }
17951796}
0 commit comments