Authen-Ticket
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
# the contents of the Makefile that is written.
WriteMakefile(
NAME => 'Authen::Ticket',
VERSION_FROM => 'lib/Authen/Ticket.pm', # finds $VERSION
PREREQ_PM => {
'Apache' => "1.26",
'Apache::Constants' => "1.09",
'Apache::URI' => "1.00",
'Apache::Util' => "1.01",
'CGI' => "2.46",
'CGI::Cookie' => "1.06",
'MIME::Base64' => "2.11",
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
);
The following module dependencies exist:
Module Authen::Ticket ::Server ::Client ::Signature
------ -------------- -------- -------- -----------
Apache X
Apache::File X
Apache::URI X
Carp X X
CGI X
CGI::Cookie X X
MIME::Base64 X X
OpenSSL X
----
BUGS
----
o Tickets must not expire during a POST. This will cause all POST
data to be lost.
lib/Authen/Ticket.pm view on Meta::CPAN
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
package Authen::Ticket;
use Apache ();
use Apache::Constants (qw/OK DECLINED FORBIDDEN/);
use Apache::URI ();
use CGI::Cookie ();
use vars (qw#$VERSION @ISA#);
$VERSION = '0.02';
@ISA = ( );
sub handler ($$) {
my $class = shift;
my $r = shift;
my $log = $r->log;
lib/Authen/Ticket.pm view on Meta::CPAN
#
# sign ticket if signing is available...
#
my $sc = eval { $self->sign_ticket($cookiev); };
if($@) {
$self->debug("Eval results: [$@]");
} else {
$cookiev = $sc;
}
$self->go_to_url(CGI::Cookie->new(-name => $$self{TicketName},
-value => $cookiev,
-domain => $$self{TicketDomain},
-path => '/'
));
return OK;
} elsif($r->current_callback eq "PerlAccessHandler") {
$class .= "::Client";
return OK unless $r->is_main;
lib/Authen/Ticket.pm view on Meta::CPAN
$uri->hostname($r->get_server_name);
$uri->port($r->get_server_port);
$uri->query(scalar $r->args);
$log->debug("Ticket `request_uri' being set to `" .
$uri->unparse . "'");
# read in content if it exists... even for a GET
$self->err_headers_out->add('Set-Cookie' =>
CGI::Cookie->new(-name => 'request_uri',
-value => $uri->unparse,
-domain => $self->{TicketDomain},
-path => '/'
)
);
return FORBIDDEN;
}
$r->connection->user($self->{ticket}->{uid});
return OK;
lib/Authen/Ticket/Client.pm view on Meta::CPAN
if($ENV{MOD_PERL}) {
$r = shift;
unless(ref $r) {
unshift @_, $r;
$r = '';
}
$r ||= Apache->request;
$self->{_r} = $r;
$self->{_log} = $r->log;
$cookies = $r->headers_in->{Cookie};
} else {
$cookies = $ENV{HTTP_COOKIE};
}
my @cookies = split(/;\s*/, $cookies);
$self->configure(@_);
$self->initialize;
lib/Authen/Ticket/Client.pm view on Meta::CPAN
my $t = shift @cookies;
$self->debug("Considering [$t]");
my($k, $v) = split(/=/, $t, 2);
$k =~ s{%(..)}{chr(hex($1))}ge;
$self->debug("$k => [$v]");
next unless $k eq $$self{TicketName};
$v =~ s{%(..)}{chr(hex($1))}ge;
$ticket = $v;
}
$self->debug("Cookies: [$cookies]");
$self->debug("Ticket: [$ticket]");
#
# provide automatic signature verification if available...
#
$self->debug("Ticket: [$ticket]");
my $sc = eval { $self->verify_ticket($ticket); };
if($@) {
$self->debug("Eval results: [$@]");
} else {
lib/Authen/Ticket/Server.pm view on Meta::CPAN
if($ENV{MOD_PERL}) {
$r = shift;
unless(ref $r) {
unshift @_, $r;
$r = '';
}
$r ||= Apache->request;
$self->{_r} = $r;
$self->{_log} = $r->log;
$ENV{HTTP_COOKIE} ||= $r->headers_in->{Cookie};
}
bless $self, $class;
$self->{query} = $self->get_query_object;
$self->{stdout} = $self->get_stdout_object;
$self->{request_uri} = $$self{query}->param('request_uri');
if($$self{_r}) {
$self->{request_uri} ||= $self->prev && $self->prev->uri;
}
$self->debug("Request URI: [", $$self{request_uri}, "]");
my $cookie = $$self{query}->cookie('request_uri');
$self->debug("Cookie: [", $cookie, "]");
$self->{request_uri} ||= $cookie;
$self->{has_cookies} = 1 if $cookie;
$self->configure(@_);
$self->initialize;
return $self
( run in 0.856 second using v1.01-cache-2.11-cpan-e9199f4ba4c )