Skip to content

Commit 24500f4

Browse files
committed
Changes.
1 parent 909b863 commit 24500f4

File tree

6 files changed

+130
-112
lines changed

6 files changed

+130
-112
lines changed

api/src/main/java/io/grpc/ManagedChannelRegistry.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -181,21 +181,21 @@ ManagedChannelBuilder<?> newChannelBuilder(NameResolverRegistry nameResolverRegi
181181
+ "artifact");
182182
}
183183
StringBuilder error = new StringBuilder();
184-
for (ManagedChannelProvider provider : providers()) {
185-
Collection<Class<? extends SocketAddress>> channelProviderSocketAddressTypes
186-
= provider.getSupportedSocketAddressTypes();
187-
if (!channelProviderSocketAddressTypes.containsAll(nameResolverSocketAddressTypes)) {
188-
error.append("; ");
189-
error.append(provider.getClass().getName());
190-
error.append(": does not support 1 or more of ");
191-
error.append(Arrays.toString(nameResolverSocketAddressTypes.toArray()));
192-
continue;
193-
}
194-
ManagedChannelProvider.NewChannelBuilderResult result
195-
= provider.newChannelBuilder(target, creds);
196-
if (result.getChannelBuilder() != null) {
197-
return result.getChannelBuilder();
198-
}
184+
for (ManagedChannelProvider provider : providers()) {
185+
Collection<Class<? extends SocketAddress>> channelProviderSocketAddressTypes
186+
= provider.getSupportedSocketAddressTypes();
187+
if (!channelProviderSocketAddressTypes.containsAll(nameResolverSocketAddressTypes)) {
188+
error.append("; ");
189+
error.append(provider.getClass().getName());
190+
error.append(": does not support 1 or more of ");
191+
error.append(Arrays.toString(nameResolverSocketAddressTypes.toArray()));
192+
continue;
193+
}
194+
ManagedChannelProvider.NewChannelBuilderResult result
195+
= provider.newChannelBuilder(target, creds);
196+
if (result.getChannelBuilder() != null) {
197+
return result.getChannelBuilder();
198+
}
199199
error.append("; ");
200200
error.append(provider.getClass().getName());
201201
error.append(": ");

examples/example-tls/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ def grpcVersion = '1.69.0-SNAPSHOT' // CURRENT_GRPC_VERSION
2828
def protocVersion = '3.25.5'
2929

3030
dependencies {
31+
implementation "io.grpc:grpc-api:${grpcVersion}"
32+
implementation "io.grpc:grpc-okhttp:${grpcVersion}"
3133
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
3234
implementation "io.grpc:grpc-stub:${grpcVersion}"
3335
compileOnly "org.apache.tomcat:annotations-api:6.0.53"
@@ -74,8 +76,6 @@ application {
7476
applicationDistribution.into('bin') {
7577
from(helloWorldTlsServer)
7678
from(helloWorldTlsClient)
77-
filePermissions {
78-
unix(0755)
79-
}
79+
fileMode = 0755
8080
}
8181
}

examples/example-tls/src/main/java/io/grpc/examples/helloworldtls/HelloWorldClientTls.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import io.grpc.Channel;
2020
import io.grpc.Grpc;
21+
import io.grpc.okhttp.OkHttpChannelBuilder;
2122
import io.grpc.ManagedChannel;
2223
import io.grpc.StatusRuntimeException;
2324
import io.grpc.TlsChannelCredentials;
@@ -52,7 +53,9 @@ public void greet(String name) {
5253
HelloRequest request = HelloRequest.newBuilder().setName(name).build();
5354
HelloReply response;
5455
try {
55-
response = blockingStub.sayHello(request);
56+
response = io.grpc.stub.ClientCalls.blockingUnaryCall(
57+
blockingStub.getChannel(), GreeterGrpc.getSayHelloMethod(),
58+
blockingStub.getCallOptions().withAuthority("foo.test.google.in"), request);
5659
} catch (StatusRuntimeException e) {
5760
logger.log(Level.WARNING, "RPC failed: {0}", e.getStatus());
5861
return;
@@ -87,7 +90,7 @@ public static void main(String[] args) throws Exception {
8790
}
8891
String host = args[0];
8992
int port = Integer.parseInt(args[1]);
90-
ManagedChannel channel = Grpc.newChannelBuilderForAddress(host, port, tlsBuilder.build())
93+
ManagedChannel channel = OkHttpChannelBuilder.forAddress(host, port, tlsBuilder.build())
9194
/* Only for using provided test certs. */
9295
.overrideAuthority("foo.test.google.fr")
9396
.build();

okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public final class OkHttpChannelBuilder extends ForwardingChannelBuilder2<OkHttp
9292
public static final int DEFAULT_FLOW_CONTROL_WINDOW = 65535;
9393

9494
private final ManagedChannelImplBuilder managedChannelImplBuilder;
95-
private final ChannelCredentials channelCrentials;
95+
private final ChannelCredentials channelCredentials;
9696
private TransportTracer.Factory transportTracerFactory = TransportTracer.getDefaultFactory();
9797

9898

@@ -210,6 +210,7 @@ private OkHttpChannelBuilder(String target) {
210210
new OkHttpChannelTransportFactoryBuilder(),
211211
new OkHttpChannelDefaultPortProvider());
212212
this.freezeSecurityConfiguration = false;
213+
this.channelCredentials = null;
213214
}
214215

215216
OkHttpChannelBuilder(
@@ -222,7 +223,7 @@ private OkHttpChannelBuilder(String target) {
222223
this.sslSocketFactory = factory;
223224
this.negotiationType = factory == null ? NegotiationType.PLAINTEXT : NegotiationType.TLS;
224225
this.freezeSecurityConfiguration = true;
225-
this.channelCrentials = channelCreds;
226+
this.channelCredentials = channelCreds;
226227
}
227228

228229
private final class OkHttpChannelTransportFactoryBuilder
@@ -905,7 +906,8 @@ public SwapChannelCredentialsResult swapChannelCredentials(ChannelCredentials ch
905906
keepAliveWithoutCalls,
906907
maxInboundMetadataSize,
907908
transportTracerFactory,
908-
useGetForSafeMethods, managedChannelImplBuilder.getChannelCredentials());
909+
useGetForSafeMethods,
910+
channelCredentials);
909911
return new SwapChannelCredentialsResult(factory, result.callCredentials);
910912
}
911913

okhttp/src/main/java/io/grpc/okhttp/OkHttpClientTransport.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
import javax.net.ssl.ExtendedSSLSession;
115115
import javax.net.ssl.HandshakeCompletedListener;
116116
import javax.net.ssl.HostnameVerifier;
117+
import javax.net.ssl.SSLParameters;
117118
import javax.net.ssl.SSLPeerUnverifiedException;
118119
import javax.net.ssl.SSLSession;
119120
import 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

Comments
 (0)