Skip to content

Commit 9798ff7

Browse files
author
Alexander Furer
committed
fixes #180
1 parent 5084ca4 commit 9798ff7

File tree

11 files changed

+390
-66
lines changed

11 files changed

+390
-66
lines changed

ReleaseNotes.adoc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
== Version 4.4.3-SNAPSHOT
2-
* Fixes *178
2+
* Fixes #178
3+
* Fixes #117
4+
* Fixes #180
35
* gRPC response status set to `PERMISSION_DENIED` when user has insufficient privileges to invoke gRPC method.
6+
* gRPC version upgraded to 1.35.0
47
58
== Version 4.4.2
69
* Spring Boot `2.4.1`

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
grpcVersion=1.34.1
1+
grpcVersion=1.35.0
22
springBootVersion=2.4.1
33
springCloudVersion=2020.0.0
44

grpc-spring-boot-starter-demo/src/main/java/org/lognet/springboot/grpc/demo/DemoAppConfiguration.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import io.grpc.examples.CalculatorGrpc;
44
import io.grpc.examples.CalculatorOuterClass;
5+
import io.grpc.examples.SecuredCalculatorGrpc;
56
import io.grpc.stub.StreamObserver;
67
import org.lognet.springboot.grpc.GRpcService;
78
import org.springframework.context.annotation.Configuration;
9+
import org.springframework.security.access.annotation.Secured;
810

911
@Configuration
1012
public class DemoAppConfiguration {
@@ -14,6 +16,12 @@ public class DemoAppConfiguration {
1416
public static class CalculatorService extends CalculatorGrpc.CalculatorImplBase{
1517
@Override
1618
public void calculate(CalculatorOuterClass.CalculatorRequest request, StreamObserver<CalculatorOuterClass.CalculatorResponse> responseObserver) {
19+
responseObserver.onNext(calculate(request));
20+
responseObserver.onCompleted();
21+
22+
23+
}
24+
static CalculatorOuterClass.CalculatorResponse calculate(CalculatorOuterClass.CalculatorRequest request){
1725
CalculatorOuterClass.CalculatorResponse.Builder resultBuilder = CalculatorOuterClass.CalculatorResponse.newBuilder();
1826
switch (request.getOperation()){
1927
case ADD:
@@ -31,7 +39,18 @@ public void calculate(CalculatorOuterClass.CalculatorRequest request, StreamObse
3139
case UNRECOGNIZED:
3240
break;
3341
}
34-
responseObserver.onNext(resultBuilder.build());
42+
return resultBuilder.build();
43+
}
44+
45+
46+
}
47+
48+
@GRpcService(interceptors = NotSpringBeanInterceptor.class)
49+
@Secured({})
50+
public static class SecuredCalculatorService extends SecuredCalculatorGrpc.SecuredCalculatorImplBase{
51+
@Override
52+
public void calculate(CalculatorOuterClass.CalculatorRequest request, StreamObserver<CalculatorOuterClass.CalculatorResponse> responseObserver) {
53+
responseObserver.onNext(CalculatorService.calculate(request));
3554
responseObserver.onCompleted();
3655

3756

grpc-spring-boot-starter-demo/src/main/proto/calculator.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,7 @@ message CalculatorResponse {
2424
service Calculator {
2525
rpc Calculate(CalculatorRequest) returns (CalculatorResponse) {}
2626
}
27+
service SecuredCalculator {
28+
rpc Calculate(CalculatorRequest) returns (CalculatorResponse) {}
29+
}
2730

grpc-spring-boot-starter-demo/src/main/protoGen/io/grpc/examples/CalculatorGrpc.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
package io.grpc.examples;
22

33
import static io.grpc.MethodDescriptor.generateFullMethodName;
4-
import static io.grpc.stub.ClientCalls.asyncUnaryCall;
5-
import static io.grpc.stub.ClientCalls.blockingUnaryCall;
6-
import static io.grpc.stub.ClientCalls.futureUnaryCall;
7-
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
8-
import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
94

105
/**
116
*/
127
@javax.annotation.Generated(
13-
value = "by gRPC proto compiler (version 1.34.1)",
8+
value = "by gRPC proto compiler (version 1.35.0)",
149
comments = "Source: calculator.proto")
1510
public final class CalculatorGrpc {
1611

@@ -102,14 +97,14 @@ public static abstract class CalculatorImplBase implements io.grpc.BindableServi
10297
*/
10398
public void calculate(io.grpc.examples.CalculatorOuterClass.CalculatorRequest request,
10499
io.grpc.stub.StreamObserver<io.grpc.examples.CalculatorOuterClass.CalculatorResponse> responseObserver) {
105-
asyncUnimplementedUnaryCall(getCalculateMethod(), responseObserver);
100+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getCalculateMethod(), responseObserver);
106101
}
107102

108103
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
109104
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
110105
.addMethod(
111106
getCalculateMethod(),
112-
asyncUnaryCall(
107+
io.grpc.stub.ServerCalls.asyncUnaryCall(
113108
new MethodHandlers<
114109
io.grpc.examples.CalculatorOuterClass.CalculatorRequest,
115110
io.grpc.examples.CalculatorOuterClass.CalculatorResponse>(
@@ -136,7 +131,7 @@ protected CalculatorStub build(
136131
*/
137132
public void calculate(io.grpc.examples.CalculatorOuterClass.CalculatorRequest request,
138133
io.grpc.stub.StreamObserver<io.grpc.examples.CalculatorOuterClass.CalculatorResponse> responseObserver) {
139-
asyncUnaryCall(
134+
io.grpc.stub.ClientCalls.asyncUnaryCall(
140135
getChannel().newCall(getCalculateMethod(), getCallOptions()), request, responseObserver);
141136
}
142137
}
@@ -158,7 +153,7 @@ protected CalculatorBlockingStub build(
158153
/**
159154
*/
160155
public io.grpc.examples.CalculatorOuterClass.CalculatorResponse calculate(io.grpc.examples.CalculatorOuterClass.CalculatorRequest request) {
161-
return blockingUnaryCall(
156+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
162157
getChannel(), getCalculateMethod(), getCallOptions(), request);
163158
}
164159
}
@@ -181,7 +176,7 @@ protected CalculatorFutureStub build(
181176
*/
182177
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.CalculatorOuterClass.CalculatorResponse> calculate(
183178
io.grpc.examples.CalculatorOuterClass.CalculatorRequest request) {
184-
return futureUnaryCall(
179+
return io.grpc.stub.ClientCalls.futureUnaryCall(
185180
getChannel().newCall(getCalculateMethod(), getCallOptions()), request);
186181
}
187182
}

grpc-spring-boot-starter-demo/src/main/protoGen/io/grpc/examples/CalculatorOuterClass.java

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grpc-spring-boot-starter-demo/src/main/protoGen/io/grpc/examples/GreeterGrpc.java

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
package io.grpc.examples;
22

33
import static io.grpc.MethodDescriptor.generateFullMethodName;
4-
import static io.grpc.stub.ClientCalls.asyncUnaryCall;
5-
import static io.grpc.stub.ClientCalls.blockingUnaryCall;
6-
import static io.grpc.stub.ClientCalls.futureUnaryCall;
7-
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
8-
import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
94

105
/**
116
* <pre>
127
* The greeter service definition.
138
* </pre>
149
*/
1510
@javax.annotation.Generated(
16-
value = "by gRPC proto compiler (version 1.34.1)",
11+
value = "by gRPC proto compiler (version 1.35.0)",
1712
comments = "Source: greeter.proto")
1813
public final class GreeterGrpc {
1914

@@ -235,70 +230,70 @@ public static abstract class GreeterImplBase implements io.grpc.BindableService
235230
*/
236231
public void sayHello(io.grpc.examples.GreeterOuterClass.HelloRequest request,
237232
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
238-
asyncUnimplementedUnaryCall(getSayHelloMethod(), responseObserver);
233+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSayHelloMethod(), responseObserver);
239234
}
240235

241236
/**
242237
*/
243238
public void sayAuthHello(com.google.protobuf.Empty request,
244239
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
245-
asyncUnimplementedUnaryCall(getSayAuthHelloMethod(), responseObserver);
240+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSayAuthHelloMethod(), responseObserver);
246241
}
247242

248243
/**
249244
*/
250245
public void sayAuthOnlyHello(com.google.protobuf.Empty request,
251246
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
252-
asyncUnimplementedUnaryCall(getSayAuthOnlyHelloMethod(), responseObserver);
247+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSayAuthOnlyHelloMethod(), responseObserver);
253248
}
254249

255250
/**
256251
*/
257252
public void helloPersonValidResponse(io.grpc.examples.GreeterOuterClass.Person request,
258253
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.Person> responseObserver) {
259-
asyncUnimplementedUnaryCall(getHelloPersonValidResponseMethod(), responseObserver);
254+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getHelloPersonValidResponseMethod(), responseObserver);
260255
}
261256

262257
/**
263258
*/
264259
public void helloPersonInvalidResponse(io.grpc.examples.GreeterOuterClass.Person request,
265260
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.Person> responseObserver) {
266-
asyncUnimplementedUnaryCall(getHelloPersonInvalidResponseMethod(), responseObserver);
261+
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getHelloPersonInvalidResponseMethod(), responseObserver);
267262
}
268263

269264
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
270265
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
271266
.addMethod(
272267
getSayHelloMethod(),
273-
asyncUnaryCall(
268+
io.grpc.stub.ServerCalls.asyncUnaryCall(
274269
new MethodHandlers<
275270
io.grpc.examples.GreeterOuterClass.HelloRequest,
276271
io.grpc.examples.GreeterOuterClass.HelloReply>(
277272
this, METHODID_SAY_HELLO)))
278273
.addMethod(
279274
getSayAuthHelloMethod(),
280-
asyncUnaryCall(
275+
io.grpc.stub.ServerCalls.asyncUnaryCall(
281276
new MethodHandlers<
282277
com.google.protobuf.Empty,
283278
io.grpc.examples.GreeterOuterClass.HelloReply>(
284279
this, METHODID_SAY_AUTH_HELLO)))
285280
.addMethod(
286281
getSayAuthOnlyHelloMethod(),
287-
asyncUnaryCall(
282+
io.grpc.stub.ServerCalls.asyncUnaryCall(
288283
new MethodHandlers<
289284
com.google.protobuf.Empty,
290285
io.grpc.examples.GreeterOuterClass.HelloReply>(
291286
this, METHODID_SAY_AUTH_ONLY_HELLO)))
292287
.addMethod(
293288
getHelloPersonValidResponseMethod(),
294-
asyncUnaryCall(
289+
io.grpc.stub.ServerCalls.asyncUnaryCall(
295290
new MethodHandlers<
296291
io.grpc.examples.GreeterOuterClass.Person,
297292
io.grpc.examples.GreeterOuterClass.Person>(
298293
this, METHODID_HELLO_PERSON_VALID_RESPONSE)))
299294
.addMethod(
300295
getHelloPersonInvalidResponseMethod(),
301-
asyncUnaryCall(
296+
io.grpc.stub.ServerCalls.asyncUnaryCall(
302297
new MethodHandlers<
303298
io.grpc.examples.GreeterOuterClass.Person,
304299
io.grpc.examples.GreeterOuterClass.Person>(
@@ -331,39 +326,39 @@ protected GreeterStub build(
331326
*/
332327
public void sayHello(io.grpc.examples.GreeterOuterClass.HelloRequest request,
333328
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
334-
asyncUnaryCall(
329+
io.grpc.stub.ClientCalls.asyncUnaryCall(
335330
getChannel().newCall(getSayHelloMethod(), getCallOptions()), request, responseObserver);
336331
}
337332

338333
/**
339334
*/
340335
public void sayAuthHello(com.google.protobuf.Empty request,
341336
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
342-
asyncUnaryCall(
337+
io.grpc.stub.ClientCalls.asyncUnaryCall(
343338
getChannel().newCall(getSayAuthHelloMethod(), getCallOptions()), request, responseObserver);
344339
}
345340

346341
/**
347342
*/
348343
public void sayAuthOnlyHello(com.google.protobuf.Empty request,
349344
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.HelloReply> responseObserver) {
350-
asyncUnaryCall(
345+
io.grpc.stub.ClientCalls.asyncUnaryCall(
351346
getChannel().newCall(getSayAuthOnlyHelloMethod(), getCallOptions()), request, responseObserver);
352347
}
353348

354349
/**
355350
*/
356351
public void helloPersonValidResponse(io.grpc.examples.GreeterOuterClass.Person request,
357352
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.Person> responseObserver) {
358-
asyncUnaryCall(
353+
io.grpc.stub.ClientCalls.asyncUnaryCall(
359354
getChannel().newCall(getHelloPersonValidResponseMethod(), getCallOptions()), request, responseObserver);
360355
}
361356

362357
/**
363358
*/
364359
public void helloPersonInvalidResponse(io.grpc.examples.GreeterOuterClass.Person request,
365360
io.grpc.stub.StreamObserver<io.grpc.examples.GreeterOuterClass.Person> responseObserver) {
366-
asyncUnaryCall(
361+
io.grpc.stub.ClientCalls.asyncUnaryCall(
367362
getChannel().newCall(getHelloPersonInvalidResponseMethod(), getCallOptions()), request, responseObserver);
368363
}
369364
}
@@ -391,35 +386,35 @@ protected GreeterBlockingStub build(
391386
* </pre>
392387
*/
393388
public io.grpc.examples.GreeterOuterClass.HelloReply sayHello(io.grpc.examples.GreeterOuterClass.HelloRequest request) {
394-
return blockingUnaryCall(
389+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
395390
getChannel(), getSayHelloMethod(), getCallOptions(), request);
396391
}
397392

398393
/**
399394
*/
400395
public io.grpc.examples.GreeterOuterClass.HelloReply sayAuthHello(com.google.protobuf.Empty request) {
401-
return blockingUnaryCall(
396+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
402397
getChannel(), getSayAuthHelloMethod(), getCallOptions(), request);
403398
}
404399

405400
/**
406401
*/
407402
public io.grpc.examples.GreeterOuterClass.HelloReply sayAuthOnlyHello(com.google.protobuf.Empty request) {
408-
return blockingUnaryCall(
403+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
409404
getChannel(), getSayAuthOnlyHelloMethod(), getCallOptions(), request);
410405
}
411406

412407
/**
413408
*/
414409
public io.grpc.examples.GreeterOuterClass.Person helloPersonValidResponse(io.grpc.examples.GreeterOuterClass.Person request) {
415-
return blockingUnaryCall(
410+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
416411
getChannel(), getHelloPersonValidResponseMethod(), getCallOptions(), request);
417412
}
418413

419414
/**
420415
*/
421416
public io.grpc.examples.GreeterOuterClass.Person helloPersonInvalidResponse(io.grpc.examples.GreeterOuterClass.Person request) {
422-
return blockingUnaryCall(
417+
return io.grpc.stub.ClientCalls.blockingUnaryCall(
423418
getChannel(), getHelloPersonInvalidResponseMethod(), getCallOptions(), request);
424419
}
425420
}
@@ -448,39 +443,39 @@ protected GreeterFutureStub build(
448443
*/
449444
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.GreeterOuterClass.HelloReply> sayHello(
450445
io.grpc.examples.GreeterOuterClass.HelloRequest request) {
451-
return futureUnaryCall(
446+
return io.grpc.stub.ClientCalls.futureUnaryCall(
452447
getChannel().newCall(getSayHelloMethod(), getCallOptions()), request);
453448
}
454449

455450
/**
456451
*/
457452
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.GreeterOuterClass.HelloReply> sayAuthHello(
458453
com.google.protobuf.Empty request) {
459-
return futureUnaryCall(
454+
return io.grpc.stub.ClientCalls.futureUnaryCall(
460455
getChannel().newCall(getSayAuthHelloMethod(), getCallOptions()), request);
461456
}
462457

463458
/**
464459
*/
465460
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.GreeterOuterClass.HelloReply> sayAuthOnlyHello(
466461
com.google.protobuf.Empty request) {
467-
return futureUnaryCall(
462+
return io.grpc.stub.ClientCalls.futureUnaryCall(
468463
getChannel().newCall(getSayAuthOnlyHelloMethod(), getCallOptions()), request);
469464
}
470465

471466
/**
472467
*/
473468
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.GreeterOuterClass.Person> helloPersonValidResponse(
474469
io.grpc.examples.GreeterOuterClass.Person request) {
475-
return futureUnaryCall(
470+
return io.grpc.stub.ClientCalls.futureUnaryCall(
476471
getChannel().newCall(getHelloPersonValidResponseMethod(), getCallOptions()), request);
477472
}
478473

479474
/**
480475
*/
481476
public com.google.common.util.concurrent.ListenableFuture<io.grpc.examples.GreeterOuterClass.Person> helloPersonInvalidResponse(
482477
io.grpc.examples.GreeterOuterClass.Person request) {
483-
return futureUnaryCall(
478+
return io.grpc.stub.ClientCalls.futureUnaryCall(
484479
getChannel().newCall(getHelloPersonInvalidResponseMethod(), getCallOptions()), request);
485480
}
486481
}

0 commit comments

Comments
 (0)