Apache2-ClickPath

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Perl extension Apache::ClickPath
1.901 Tue Apr  8 14:29:44 CEST 2008
	* Torsten Foertsch <torsten.foertsch@gmx.net>
	- Crypt::CBC interface has changed
	- some minor changes to the build process

1.9   Sun Oct 30 20:15:24 CET 2005
	* Torsten Foertsch <torsten.foertsch@gmx.net>
	- using Apache2::URL::parse_uri instead of $r->uri
	  to set the uri after cutting the session off

1.8   Sun Jul 17 13:52:56 CEST 2005
	* Torsten Foertsch <torsten.foertsch@gmx.net>
	- ClickPathSecret, ClickPathSecretIV  directives

META.yml  view on Meta::CPAN

--- #YAML:1.0
name:                Apache2-ClickPath
version:             1.901
abstract:            Apache WEB Server User Tracking
license:             ~
generated_by:        ExtUtils::MakeMaker version 6.36
distribution_type:   module
requires:     
    Apache::Test:                  
    Crypt::Blowfish:               
    Crypt::CBC:                    2.14
    Digest::CRC:                   
    LWP::UserAgent:                
    mod_perl2:                     0
meta-spec:
    url:     http://module-build.sourceforge.net/META-spec-v1.2.html
    version: 1.2
author:
    - Torsten Foertsch <torsten.foertsch@gmx.net>

Makefile.PL  view on Meta::CPAN

Apache::TestMM::filter_args();
Apache::TestMM::generate_script('t/TEST');

ModPerl::MM::WriteMakefile(
    NAME              => 'Apache2::ClickPath',
    VERSION_FROM      => 'lib/Apache2/ClickPath.pm', # finds $VERSION
    PREREQ_PM         => {
			  "Apache::Test" => "",
			  mod_perl2=>0,
			  "LWP::UserAgent" => '',
			  "Crypt::CBC" => '2.14',
			  "Crypt::Blowfish" => '',
			  "Digest::CRC" => '',
			 },
    clean             => {
			  FILES => "t/TEST",
			 },
    depend            => {
			 },
    dist              => {
			  PREOP => './mk_README.sh',

lib/Apache2/ClickPath.pm  view on Meta::CPAN

use Apache2::Module ();
use Apache2::CmdParms ();
use Apache2::Directive ();
use Apache2::Log ();
use Apache2::URI ();
use Apache2::Const -compile => qw(DECLINED OK
				  OR_ALL RSRC_CONF
				  TAKE1 RAW_ARGS NO_ARGS);

use MIME::Base64 ();
use Crypt::CBC ();
use Crypt::Blowfish ();
use Digest::MD5 ();
use Digest::CRC ();

use Apache2::ClickPath::_parse ();

our $VERSION = '1.901';
our $rcounter=int rand 0x10000;

my @directives=

lib/Apache2/ClickPath.pm  view on Meta::CPAN

	$newsession++;
	goto NEWSESSION;
      }
    }

    my $len4=do {use integer; (length( $l[1] )+3)/4;};
    $len4*=4;
    $l[1]=MIME::Base64::decode_base64( $l[1].('='x($len4-length( $l[1] ))) );

    if( exists $cf->{ClickPathSecret} ) {
      my $crypt=Crypt::CBC->new(
				-key=>$cf->{ClickPathSecret},
				-keysize=>length($cf->{ClickPathSecret}),
				-cipher=>'Crypt::Blowfish',
				-literal_key=>1,
				-header=>'none',
				-iv=>$cf->{ClickPathSecretIV},
			       );
      $l[1]=$crypt->decrypt( $l[1] );
    }

lib/Apache2/ClickPath.pm  view on Meta::CPAN

	}
      }
      my $session=pack( 'NNnN',
			$r->request_time, $$, $rcounter++,
			$r->connection->id );
      $rcounter%=2**16;

      $session=pack( 'C', Digest::CRC::crc8( $session ) ).$session;

      if( exists $cf->{ClickPathSecret} ) {
	my $crypt=Crypt::CBC->new(
				  -key=>$cf->{ClickPathSecret},
				  -keysize=>length($cf->{ClickPathSecret}),
				  -cipher=>'Crypt::Blowfish',
				  -literal_key=>1,
				  -header=>'none',
				  -iv=>$cf->{ClickPathSecretIV},
				 );
	$session=$crypt->encrypt( $session );
      }
      $session=MIME::Base64::encode_base64( $session, '' );

lib/Apache2/ClickPath/Decode.pm  view on Meta::CPAN

package Apache2::ClickPath::Decode;

use strict;
use warnings;
no warnings qw{uninitialized};
use Apache2::ClickPath::_parse;
use MIME::Base64 ();
use Crypt::CBC ();
use Crypt::Blowfish ();
use Digest::MD5 ();
use Digest::CRC ();
use Class::Member qw{friendly_session
		     tag
		     server_map
		     secret
		     secret_iv
		     session
		     remote_session_host remote_session

lib/Apache2/ClickPath/Decode.pm  view on Meta::CPAN

  $len4*=4;
  $l[1]=MIME::Base64::decode_base64( $l[1].('='x($len4-length( $l[1] ))) );
  if( $I->secret ) {
    my $secret=Apache2::ClickPath::_parse::Secret( $I->secret );
    my $iv;
    if( length $I->secret_iv ) {
      $iv=substr( Digest::MD5::md5( $I->secret_iv ), 0, 8 );
    } else {
      $iv="abcd1234";
    }
    my $crypt=Crypt::CBC->new(
			      -key=>$secret,
			      -keysize=>length($secret),
			      -cipher=>'Crypt::Blowfish',
			      -literal_key=>1,
			      -header=>'none',
			      -iv=>$iv,
			     );
    $l[1]=$crypt->decrypt( $l[1] );
  }

perl-Apache2-ClickPath.spec  view on Meta::CPAN

%define archbase %(perl -Mmod_perl2 -MConfig -e '$d=$INC{"mod_perl2.pm"};$d=~s!(?:/[^/]+){1}$!!; print($d=~m!^/opt!?$d:$Config{vendorarch});')
%define binbase  %(perl -Mmod_perl2 -MConfig -e '$d=$INC{"mod_perl2.pm"};$d=~s!(?:/[^/]+){3}$!!; print($d=~m!^/opt!?$d."/bin":$Config{vendorbin});')
%define manbase  %(perl -Mmod_perl2 -MConfig -e '$d=$INC{"mod_perl2.pm"};$d=~s!(?:/[^/]+){3}$!!; print($d=~m!^/opt!?$d."/man":do{$x=$Config{vendorman3dir}; $x=~s!/[/]+$!!;$x;});')
%define namebase %(perl -Mmod_perl2 -e '$d=$INC{"mod_perl2.pm"};$d=~s!(?:/[^/]+){4}$!!;$d=~tr!/!-!;print(($d=~/^-opt/?$d:"")."-Apache2-ClickPath");')

Name:         perl%{namebase}
License:      Artistic License
Group:        Development/Libraries/Perl
Requires:     perl = %{perl_version}
Requires:     p_mod_perl >= 1.999022
Requires:     perl-Crypt-CBC >= 2.14
Autoreqprov:  on
Summary:      Apache2::ClickPath
Version:      1.901
Release:      3
Source:       Apache2-ClickPath-%{version}.tar.gz
BuildRoot:    %{_tmppath}/%{name}-%{version}-build

%description
Apache2::ClickPath



( run in 1.439 second using v1.01-cache-2.11-cpan-df04353d9ac )