Perlbal-Plugin-ForwardedFor
    
    
  
  
  
view release on metacpan or search on metacpan
---
abstract: 'Rename the X-Forwarded-For header in Perlbal'
author:
  - 'Sawyer X <xsawyerx@cpan.org>'
build_requires:
  Test::More: 0
configure_requires:
  Module::Build: 0.36
generated_by: 'Module::Build version 0.3603'
license: perl
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
    
  
  
  NAME
    Perlbal::Plugin::ForwardedFor - Rename the X-Forwarded-For header in
    Perlbal
VERSION
    Version 0.02
SYNOPSIS
    This plugin changes the header Perlbal will use to delcare itself as a
    proxy.
    Usually Perlbal will - perl RFC - add itself to X-Forwarded-For, but
    this plugins allows you to change that to any header you want, so you
    could differ Perlbal from other possible proxies the user might have.
    In your Perlbal configuration:
        LOAD ForwardedFor
        CREATE SERVICE http_balancer
          SET role      = reverse_proxy
          SET pool      = machines
    
  
  
  SUBROUTINES/METHODS
  load
    Register a global hook and check for configuration problems.
  register
    Register a service hook to run a callback to rewrite the header.
  rewrite_header
    The function that is called as the callback.
    Rewrites the *X-Forwarded-For* to whatever header name you specified in
    the configuration file.
AUTHOR
    Sawyer X, "<xsawyerx at cpan.org>"
BUGS
    This plugin is on Github and you can file issues on:
    <http://github.com/xsawyerx/perlbal-plugin-forwardedfor/issues>
    
  
  
  lib/Perlbal/Plugin/ForwardedFor.pm view on Meta::CPAN
        'backend_client_assigned',
        sub { rewrite_header( @_, $target_header ) },
    );
    return 1;
} 
sub rewrite_header {
    my ( $svc, $target_header ) = @_;
    my $headers     = $svc->{'req_headers'};
    my $header_name = 'X-Forwarded-For';
    my $forwarded   = $headers->header($header_name);
    my $DELIMITER   = q{, };
    my $EMPTY       = q{};
    my @ips = split /$DELIMITER/, $forwarded;
    my $ip  = pop @ips;
    $headers->header( $target_header, $ip );
    if (@ips) {
    
  
  
  lib/Perlbal/Plugin/ForwardedFor.pm view on Meta::CPAN
    return 0;
}
1;
__END__
=head1 NAME
Perlbal::Plugin::ForwardedFor - Rename the X-Forwarded-For header in Perlbal
=head1 VERSION
Version 0.02
=head1 SYNOPSIS
This plugin changes the header Perlbal will use to delcare itself as a proxy.
Usually Perlbal will - perl RFC - add itself to X-Forwarded-For, but this
plugins allows you to change that to any header you want, so you could differ
Perlbal from other possible proxies the user might have.
In your Perlbal configuration:
    LOAD ForwardedFor
    CREATE SERVICE http_balancer
      SET role      = reverse_proxy
      SET pool      = machines
    
  
  
  lib/Perlbal/Plugin/ForwardedFor.pm view on Meta::CPAN
Register a global hook and check for configuration problems.
=head2 register
Register a service hook to run a callback to rewrite the header.
=head2 rewrite_header
The function that is called as the callback.
Rewrites the I<X-Forwarded-For> to whatever header name you specified in the
configuration file.
=head1 AUTHOR
Sawyer X, C<< <xsawyerx at cpan.org> >>
=head1 BUGS
This plugin is on Github and you can file issues on:
    
  
  
  t/rewrite_header.t view on Meta::CPAN
sub new { return bless {}, shift }
sub header {
    my ( $self, $key, $value ) = @_;
    if ( $key && $value ) {
        is( $key,   'MySpecialHeader', 'Setting new header'               );
        is( $value, '1.1.1.1',         'Setting correct value for header' );
    } elsif ($key) {
        is( $key, 'X-Forwarded-For',   'Correct old header in TestHeader' );
    }
    return '1.1.1.1';
}
package main;
use strict;
use warnings;
use Test::More tests => 5;
    
  
  
  
( run in 0.322 second using v1.01-cache-2.11-cpan-a1d94b6210f )