From 5f7186264f13fd682f89a1de7270af764eb66a01 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Thu, 27 Jun 2013 13:00:56 +0200 Subject: [PATCH] New file, mod_perl output filter SetACOA.pm --- etc/mod_perl/MyApache2/SetACAO.pm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 etc/mod_perl/MyApache2/SetACAO.pm diff --git a/etc/mod_perl/MyApache2/SetACAO.pm b/etc/mod_perl/MyApache2/SetACAO.pm new file mode 100644 index 0000000..594a5eb --- /dev/null +++ b/etc/mod_perl/MyApache2/SetACAO.pm @@ -0,0 +1,31 @@ +package MyApache2::SetACAO; + +use Apache2::Filter (); +use Apache2::RequestRec (); +use APR::Table (); + +use Apache2::Const -compile => qw(OK); + +use constant BUFF_LEN => 1024; + +sub handler { + my $f = shift; + + # If the client generated an Origin header, echo its content back + # in an ACAO header. This is better than just using *, since it + # doesnt prevent credentials from being accepted. + my $hi = $f->r->headers_in; + my $ho = $f->r->headers_out; + my $origin = $ho->get('Origin'); + if (defined $origin && $origin ne "") { + $ho->set('Access-Control-Allow-Origin', $origin); + } + + while ($f->read(my $buffer, BUFF_LEN)) { + $f->print($buffer); + } + + return Apache2::Const::OK; +} + +1; -- 1.7.10.4