man WebKDC () - functions to support the WebKDC
NAME
WebKDC - functions to support the WebKDC
SYNOPSIS
use WebAuth; use WebKDC; use WebKDC::Exception; use WebKDC::WebRequest; use WebKDC::WebResponse;
my ($status, $exception) = WebKDC::make_request_token_request($req, $resp);
DESCRIPTION
WebKDC is a set of convenience functions built on top of mod WebAuth to implement the WebKDC.
All functions have the potential to throw either a WebKDC::WebKDCException or WebAuth::Exception.
EXPORT
None
FUNCTIONS
- make_request_token_request(req,resp)
-
($status, $e) = WebKDC::make_request_token_request($req, $resp);
Used to handle an incoming request token. It should be used in the following fashion:my $req = new WebKDC::WebRequest; my $resp = new WebKDC::WebResponse;
# if the user just submitted their username/password, include them if ($username && $password) { $req->user($username); $req->pass($password); }
# pass in any proxy-tokens we have from a cookies # i.e., enumerate through all cookies that start with webauth_wpt # and put them into a hash: # $cookies = { "webauth_wpt_krb5" => $cookie_value }
$req->proxy_cookies($cookies);
# $req_token_str and $service_token_str would normally get # passed in via query/post parameters
$req->request_token($req_token_str); $req->service_token($service_token_str);
my ($status, $e) = WebKDC::make_request_token_request($req, $resp);
# for all these cases, check if $resp->proxy_cookies() has any # proxy cookies we need to update when sending back a page to # the browser
if ($status == WK_SUCCESS) { # ok, request succesful } elsif ($status == WK_ERR_USER_AND_PASS_REQUIRED) { # prompt for user/pass } elsif ($status == WK_ERR_LOGIN_FAILED) { # supplied user/pass was invalid, try again } else { # use this if/elsif/else to pick the error message if ($status == WK_ERR_UNRECOVERABLE_ERROR) { # something nasty happened. } elsif ($status == WK_ERR_REQUEST_TOKEN_STATLE) { # user took too long to login, original request token is stale } elsif ($status == WK_ERR_WEBAUTH_SERVER_ERROR) { # like WK_ERR_UNRECOVERABLE_ERROR, but indicates the error # most likely is due to the webauth server making the request, } else { # treat like WK_ERROR_UNRECOVERABLE ERROR } # display the error message and don't prompt anymore }
AUTHOR
Roland Schemers (schemers@stanford.edu)
SEE ALSO
WebKDC::WebKDCException WebKDC::Token WebKDC::WebRequest WebKDC::WebRespsonse WebAuth.