package CookieWrapper;
use Mojo::Base 'Mojolicious';
# This method will run once at server start
sub startup {
my $app = shift;
$app->secrets(['some secure secret']);
$app->plugin('Mojolicious::Plugin::ReverseProxy',{
destination_url => 'http://google.com/',
req_processor => sub {
my $ctrl= shift;
my $req = shift;
my $opt = shift;
# get cookies from session
$req->headers->remove('cookie');
my $cookies = $ctrl->session->{cookies};
$req->cookies(map { { name => $_, value => $cookies->{$_} } } keys %$cookies);
},
res_processor => sub {
my $ctrl = shift;
my $res = shift;
my $opt = shift;
# for fun, remove all the cookies
my $cookies = $res->cookies;
my $session = $ctrl->session;
for my $cookie (@{$res->cookies}){
$session->{cookies}{$cookie->name} = $cookie->value;
}
# as the session will get applied later on
$res->headers->remove('set-cookie');
}
});
}
1;