ngcp-panel/lib/Catalyst/Plugin/NGCP/RealmCookie.pm

44 lines
993 B

package Catalyst::Plugin::NGCP::RealmCookie;
use Moose;
use namespace::autoclean;
extends 'Catalyst::Plugin::Session::State::Cookie';
# prevents creation of an empty ..._session cookies during
# session pre-setup
sub setup_session {
my $c = shift;
$c->maybe::next::method(@_);
return;
}
sub get_cookie_name {
my $c = shift;
my $ngcp_api_realm = $c->request->env->{NGCP_REALM} // "";
my $cookie_name = $c->_session_plugin_config->{cookie_name} //
Catalyst::Utils::appprefix($c);
$cookie_name .= $ngcp_api_realm ? '_'.$ngcp_api_realm : '';
return $cookie_name;
}
sub update_session_cookie {
my ( $c, $updated ) = @_;
unless ( $c->cookie_is_rejecting( $updated ) ) {
my $cookie_name = $c->get_cookie_name;
$c->response->cookies->{$cookie_name} = $updated;
}
}
sub get_session_cookie {
my $c = shift;
my $cookie_name = $c->get_cookie_name;
return $c->request->cookies->{$cookie_name};
}
1;