code: func (ctx *Ctx) AuthZResponse(rm ResponseModifier, r *http.Request) error {
  	ctx.authReq.ResponseStatusCode = rm.StatusCode()
  	ctx.authReq.ResponseHeaders = headers(rm.Header())
  
  	if sendBody(ctx.requestURI, rm.Header()) {
  		ctx.authReq.ResponseBody = rm.RawBody()
  	}
  
  	for _, plugin := range ctx.plugins {
  		logrus.Debugf("AuthZ response using plugin %s", plugin.Name())
  
  		authRes, err := plugin.AuthZResponse(ctx.authReq)
  		if err != nil {
  			return fmt.Errorf("plugin %s failed with error: %s", plugin.Name(), err)
  		}
  
  		if !authRes.Allow {
  			return newAuthorizationError(plugin.Name(), authRes.Msg)
  		}
  	}
  
  	rm.FlushAll()
  
  	return nil
  }
docs: // AuthZResponse authorized and manipulates the response from docker daemon using authZ plugins