Apache::CookieToQuery - Rewrite query string by adding cookie information


Apache-CookieToQuery documentation Contained in the Apache-CookieToQuery distribution.

Index


Code Index:

NAME

Top

	Apache::CookieToQuery - Rewrite query string by adding cookie information

SYNOPSIS

Top

	In httpd.conf or similiar

	<Location /YourLocation>
		PerlAddVar IncludeCookie WSID
		PerlAddVar IncludeCookie SID
		PerlAddVar IncludeCookie QID
		PerlAddVar CookieAlias WSID:WebSiteId
		PerlAddVar CookieAlias QID:QueryId
		PerlFixupHandler Apache::CookieToQuery	
	</Location>

	Requests for http://yourhost/YourLocation?extra_params=12345

	Will now become rewritten so they look similiar to:

	http://yourhost/YourLocation?WebSiteId=<cookie WSID>;SID=<cookie SID>;QueryId=<cookie QID>;extra_params=12345

	Where <cookie WSID> for example is the value of cookie named WSID

DESCRIPTION

Top

	This module will aid in adding cookie information to your query strings
	so that cgi scripts or handlers underneath can have immidate benefit

	It requires mod_perl + Apache web server with PERL_FIXUP callback hook enabled
	for more information on callback hooks refer to: 
	http://perl.apache.org/docs/1.0/guide/install.html#Callback_Hooks

	IncludeCookie specifies cookie names that will be added, if none are specified
	any cookie name is taken into consideration

	CookieAlias specifies cookie name to look for and cookie name to alias it with 
	when query string is rewritten, if alias for a cookie name does not exist, 
	original cookie name will be used 

	Please note that in the current implementation cookies always take precedence 
	over query string paramaters 

	This package should always be installed as PerlFixupHandler so that it can execute before
	standard PerlResponseHandler is called

BUGS

Top

	If you find any, please let the author know

AUTHOR

Top

	Alex Pavlovic
	CPAN ID: ALEXP
	alex.pavlovic@taskforce-1.com




COPYRIGHT

Top

SEE ALSO

Top

	perl(1).

PUBLIC METHODS

Top

	Each public function/method is described here.
	These are how you should interact with this module.

handler

	Usage     : handler ( $apache ) 
	Purpose   : rewrites the query string of the original request
	Returns   : Server constant OK
	Argument  : apache instance


Apache-CookieToQuery documentation Contained in the Apache-CookieToQuery distribution.
package Apache::CookieToQuery;
use strict;

BEGIN {
	use vars qw ( $VERSION @COOKIE_NAMES %COOKIE_ALIASES );
	$VERSION     = 1.05;
}

use Apache;
use Apache::Constants qw( OK );
use CGI qw();
use Apache::Cookie;
use constant CONFIG_COOKIE_INCLUDE => 'IncludeCookie';
use constant CONFIG_COOKIE_ALIAS => 'CookieAlias';
use constant CONFIG_ALIAS_SEP => ':';

########################################### main pod documentation begin ##

############################################# main pod documentation end ##

################################################ subroutine header begin ##

################################################## subroutine header end ##

sub handler {
	my $apache = shift;
	my $cgi = CGI->new ( { $apache->args } );
	my $cookies = Apache::Cookie->new( $apache )->fetch;
        %COOKIE_ALIASES = split CONFIG_ALIAS_SEP, join CONFIG_ALIAS_SEP, $apache->dir_config->get ( CONFIG_COOKIE_ALIAS ) unless %COOKIE_ALIASES;
	@COOKIE_NAMES = $apache->dir_config->get ( CONFIG_COOKIE_INCLUDE ) unless @COOKIE_NAMES;
	my $cookie_names = @COOKIE_NAMES ? 
		\@COOKIE_NAMES : 
			[ keys %$cookies ];
	$cookies->{$_} and $cgi->param ( ( $COOKIE_ALIASES{$_} or $_ ), $cookies->{$_}->value ) for @$cookie_names;
	$apache->args ( $cgi->query_string );
	return OK;
}

1; 

__END__