CGI-AppBuilder-Security

 view release on metacpan or  search on metacpan

Security.pm  view on Meta::CPAN

package CGI::AppBuilder::Security;

# Perl standard modules
use strict;
use warnings;
use Getopt::Std;
use POSIX qw(strftime);
use Carp;
use CGI ':standard';
use CGI::Cookie;
use CGI::AppBuilder;
use CGI::AppBuilder::Message qw(:echo_msg);

our $VERSION = 0.12;
require Exporter;
our @ISA         = qw(Exporter CGI::AppBuilder);
our @EXPORT      = qw();
our @EXPORT_OK   = qw(access_ok get_cookies set_cookies
                   );
our %EXPORT_TAGS = (

Security.pm  view on Meta::CPAN

This method retrieves and parses cookies set by previous process and 
returns them in a hash array reference.

=cut

sub get_cookies {
    my $s = shift;
    my ($q, $ar) = @_;
    
    # retrieve cookies
    # my %cookies = fetch CGI::Cookie;
    my %cookies = CGI::Cookie->fetch;
$s->disp_param(\%cookies);     
    
    my %cks = ();  # parsed cookies
    foreach my $k (sort keys %cookies) {
        foreach my $rec (split /;/, $cookies{$k}) {
            my ($k1, $v1) = split /=/, $rec;
            $cks{$k}{$k1} = $v1;
        }
    }
    $s->disp_param(\%cks) if exists $ar->{v} && $ar->{v};

Security.pm  view on Meta::CPAN

        my $ss = substr($v,14,2);
        $v = timelocal($ss,$mm,$hh,$dd,$mn,$yr); 
      } 
      $v  = $cr->{$k1} 	if !$v && exists $cr->{$k1}; 
      $kv->{$k1} = $v;          
      push @$ck, $q->cookie(-name=>$k1,-value=>$v,-domain=>$dn, 
        -expires=>'+3M');
    }
    $ar->{_cookie} = $ck;
    # print header(-cookie=>$ck); 
    # for my $i (0..$#$ck) { my $c = $ck->[$i]; print "Set-Cookie: $c\n";  } 
    # print "Content-Type: text/html\n\n"; 

    # $s->echo_msg($kv, 3); 
    # $s->echo_msg($ck, 0);
    # my $c2 = $s->get_cookies($q, $ar); 
    # $s->echo_msg($c2, 0);
    return 0 if !$kv->{ckUID} || !$kv->{ckPWD};
    return 1;       
}



( run in 0.535 second using v1.01-cache-2.11-cpan-e9199f4ba4c )