Catalyst-Engine-Apache

 view release on metacpan or  search on metacpan

lib/Catalyst/Engine/Apache.pm  view on Meta::CPAN


    $c->request->address( $self->apache->connection->remote_ip );

    PROXY_CHECK:
    {
        my $headers = $self->apache->headers_in;
        unless ( $c->config->{using_frontend_proxy} ) {
            last PROXY_CHECK if $c->request->address ne '127.0.0.1';
            last PROXY_CHECK if $c->config->{ignore_frontend_proxy};
        }
        last PROXY_CHECK unless $headers->{'X-Forwarded-For'};

        # If we are running as a backend server, the user will always appear
        # as 127.0.0.1. Select the most recent upstream IP (last in the list)
        my ($ip) = $headers->{'X-Forwarded-For'} =~ /([^,\s]+)$/;
        $c->request->address( $ip );
    }

    $c->request->hostname( $self->apache->connection->remote_host );
    $c->request->protocol( $self->apache->protocol );
    $c->request->user( $self->apache->user );
    $c->request->remote_user( $self->apache->user );

    # when config options are set, check them here first
    if ($INC{'Apache2/ModSSL.pm'}) {

t/author-live_engine_request_headers.t  view on Meta::CPAN

use HTTP::Request::Common;

{
    my $creq;

    my $request = GET( 'http://localhost/dump/request',
        'User-Agent'       => 'MyAgen/1.0',
        'X-Whats-Cool'     => 'Catalyst',
        'X-Multiple'       => [ 1 .. 5 ],
        'X-Forwarded-Host' => 'frontend.server.com',
        'X-Forwarded-For'  => '192.168.1.1, 1.2.3.4',
    );

    ok( my $response = request($request), 'Request' );
    ok( $response->is_success, 'Response Successful 2xx' );
    is( $response->content_type, 'text/plain', 'Response Content-Type' );
    like( $response->content, qr/^bless\( .* 'Catalyst::Request' \)$/s, 'Content is a serialized Catalyst::Request' );
    ok( eval '$creq = ' . $response->content, 'Unserialize Catalyst::Request' );
    isa_ok( $creq, 'Catalyst::Request' );
    isa_ok( $creq->headers, 'HTTP::Headers', 'Catalyst::Request->headers' );
    is( $creq->header('X-Whats-Cool'), $request->header('X-Whats-Cool'), 'Catalyst::Request->header X-Whats-Cool' );



( run in 0.243 second using v1.01-cache-2.11-cpan-26ccb49234f )