pub async fn protect( handler: &mut (dyn Endpoint + Send + Sync), req: &(dyn Request + Sync), ) -> Result<Grant, Error>