Describe the bug
If there is an openidConnectClient configured for JWT authentication and there is a gRPC service which uses client streaming (or bidirectional streaming) the client stream is always prematurely closed.
Steps to Reproduce
Using the grpc guide in the system server.xml the follwing should be added:
In the test SystemServiceTest.java the inProcessChannel can be changed to inProcessChannel = ManagedChannelBuilder.forAddress("localhost", 9080).usePlaintext().build();.
Now the method testGetClientStreamingProperties() should be changed to add a JWT token and wait some time between the properties like the following:
Additional context
I think the problem is that the openidConnectClient feature stores all post requests (even if they are not complete or huge) which is a problem for client streaming services (we had to change one of our rest service to use PUT instead of POST to avoid out of memory problems, but gRPC always uses POST).
Describe the bug
If there is an
openidConnectClient
configured for JWT authentication and there is a gRPC service which uses client streaming (or bidirectional streaming) the client stream is always prematurely closed.Steps to Reproduce
Using the grpc guide in the system
server.xml
the follwing should be added:In the test
SystemServiceTest.java
theinProcessChannel
can be changed toinProcessChannel = ManagedChannelBuilder.forAddress("localhost", 9080).usePlaintext().build();
. Now the methodtestGetClientStreamingProperties()
should be changed to add a JWT token and wait some time between the properties like the following:If the test method is now run while the liberty server is running there is mostly only one property written to the server console instead of all:
Expected behavior
The stream is only closed when the client calls
onCompleted()
(oronError()
).Diagnostic information:
Additional context
I think the problem is that the
openidConnectClient
feature stores all post requests (even if they are not complete or huge) which is a problem for client streaming services (we had to change one of our rest service to usePUT
instead ofPOST
to avoid out of memory problems, but gRPC always usesPOST
).