Skip to content

Need help for gRPC sample implementation. #235

Open

Description

@mukundv18

I have written the sample code for authorisation using gRPC service. I was unable to find an easy way to implement the service.

import io.grpc.Server;
import io.grpc.ServerBuilder;

public class AuthServer {

    public static void main(String[] args) throws Exception {
        // Create a new server to listen on port 8081
        Server server = ServerBuilder.forPort(5051)
            .addService(new ExtAuthService())
            .build();

        // Start the server
        server.start();

        // Server threads are running in the background.
        System.out
            .println("+++++++++++++++++++++++ gRPC server started ++++++++++++++++++++++++++++");
        // Don't exit the main thread. Wait until server is terminated.
        server.awaitTermination();
    }
}

The external authorisation service is follows.

import com.google.rpc.Status;
import io.envoyproxy.envoy.service.auth.v3.AuthorizationGrpc;
import io.envoyproxy.envoy.service.auth.v3.CheckRequest;
import io.envoyproxy.envoy.service.auth.v3.CheckResponse;
import io.envoyproxy.envoy.service.auth.v3.OkHttpResponse;
import io.grpc.stub.StreamObserver;

public class ExtAuthService extends AuthorizationGrpc.AuthorizationImplBase {

    @Override
    public void check (CheckRequest request, StreamObserver<CheckResponse> responseObserver) {

        System.out.println("++++++++++hit+++++++++++++++");

        System.out.println(request);

        CheckResponse response = CheckResponse.newBuilder()
            .setStatus(Status.newBuilder().build())
            .setOkResponse(OkHttpResponse.newBuilder().build())
            .build();

        // Use responseObserver to send a single response back
        responseObserver.onNext(response);

        // When you are done, you must call onCompleted.
        responseObserver.onCompleted();
    }
}

Request:

curl -X POST -vs -H "Authorization: Bearer foo" -H 'Content-Type: application/grpc' -H 'Accept: application/grpc' -H 'TE: trailers' -w "\n" --http2-prior-knowledge http://localhost:5051/check

Response:

* Connection state changed (MAX_CONCURRENT_STREAMS == 2147483647)!
< HTTP/2 200 
< content-type: application/grpc
< grpc-status: 12
< grpc-message: Method not found: check

What am I missing?

Activity

  1. changed the title [-]Need help for gRPC implementation.[/-] [+]Need help for gRPC sample implementation.[/+] on May 11, 2022
  2. liangyuanpeng commented on Dec 27, 2022

    @liangyuanpeng
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions