想知道是否有一种方法可以访问底层 net.Conn 以使用 SO_PEERCRED 检索用户凭据并在服务器处理请求之前对其进行验证。
从https://blog.jbowen.dev/2019/09/using-so_peercred-in-go/,需要 net.UnixConn 返回用于验证的 unix.Ucred。因此,如果服务器请求处理程序有某种方法可以访问 net.Conn,这应该很容易
我查看了 UnaryServerInterceptor,但 UnaryServerInterceptor 中提供的任何内容似乎都没有包含 net.Conn
func interceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
log.Printf("Intercepted: %+v %+v", info.Server, req) // anything here?
return handler(ctx, req)
}
小怪兽爱吃肉
相关分类