code: func New(ctx context.Context, next http.Handler, config config.IPWhiteList, name string) (http.Handler, error) {
  	logger := middlewares.GetLogger(ctx, name, typeName)
  	logger.Debug("Creating middleware")
  
  	if len(config.SourceRange) == 0 {
  		return nil, errors.New("sourceRange is empty, IPWhiteLister not created")
  	}
  
  	checker, err := ip.NewChecker(config.SourceRange)
  	if err != nil {
  		return nil, fmt.Errorf("cannot parse CIDR whitelist %s: %v", config.SourceRange, err)
  	}
  
  	strategy, err := config.IPStrategy.Get()
  	if err != nil {
  		return nil, err
  	}
  
  	logger.Debugf("Setting up IPWhiteLister with sourceRange: %s", config.SourceRange)
  	return &ipWhiteLister{
  		strategy:    strategy,
  		whiteLister: checker,
  		next:        next,
  		name:        name,
  	}, nil
  }
docs: // New builds a new IPWhiteLister given a list of CIDR-Strings to whitelist