envoyproxy / envoyproxy/java-control-plane

Need help for gRPC sample implementation.

未关闭
#235 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
312
派生
149
PR 合并指标
30 天内没有已合并 PR

描述

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?

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。