envoyproxy / envoyproxy/java-control-plane

Need help for gRPC sample implementation.

Đang mở
#235 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
312
Fork
149
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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 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?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.