|
From: <de...@de...> - 2010-02-06 02:14:52
|
Author: IanKluft Date: 2010-02-05 20:14:44 -0600 (Fri, 05 Feb 2010) New Revision: 18319 Trac url: http://develop.twiki.org/trac/changeset/18319 Modified: twiki/trunk/OpenIdRpContrib/lib/TWiki/Contrib/OpenIdRpContrib/DBLockPerAccess.pm twiki/trunk/OpenIdRpContrib/lib/TWiki/LoginManager/OpenID.pm Log: Item6390: OpenID cleanups: * OpenIdRpContrib/DBLockPerAccess.pm * fix operator precedence * LoginManager/OpenID.pm: * clean up debugging statements to be configurable from Localsite.cfg * consolidate debugging statements into debug() function * pass configured debugging status to Net::OpenID::Consumer * add return's after all exceptions in login() - just for readability Modified: twiki/trunk/OpenIdRpContrib/lib/TWiki/Contrib/OpenIdRpContrib/DBLockPerAccess.pm =================================================================== --- twiki/trunk/OpenIdRpContrib/lib/TWiki/Contrib/OpenIdRpContrib/DBLockPerAccess.pm 2010-02-05 22:47:10 UTC (rev 18318) +++ twiki/trunk/OpenIdRpContrib/lib/TWiki/Contrib/OpenIdRpContrib/DBLockPerAccess.pm 2010-02-06 02:14:44 UTC (rev 18319) @@ -60,7 +60,7 @@ # determine flags for read and write operations $self->{rwflags} = {}; $self->{rwflags}{read} = O_RDONLY; - if ( $self->{flags} & O_ACCMODE == O_RDONLY ) { + if (( $self->{flags} & O_ACCMODE ) == O_RDONLY ) { $self->{rwflags}{write} = undef; } else { $self->{rwflags}{write} = $self->{flags}; Modified: twiki/trunk/OpenIdRpContrib/lib/TWiki/LoginManager/OpenID.pm =================================================================== --- twiki/trunk/OpenIdRpContrib/lib/TWiki/LoginManager/OpenID.pm 2010-02-05 22:47:10 UTC (rev 18318) +++ twiki/trunk/OpenIdRpContrib/lib/TWiki/LoginManager/OpenID.pm 2010-02-06 02:14:44 UTC (rev 18319) @@ -64,6 +64,10 @@ # set state to enable login $session->enterContext('can_login'); + # set class variables + $this->{debug} = ( exists $TWiki::cfg{OpenIdRpContrib}{Debug}) + ? $TWiki::cfg{OpenIdRpContrib}{Debug} : 0; + # override TWiki::LoginManager's LOGIN tag handler with OpenID-specific one TWiki::registerTagHandler('LOGIN', \&_LOGIN); @@ -89,6 +93,21 @@ $this->SUPER::finish(); } +=begin twiki + +---++ StaticMethod debug() +print debugging info when debug mode is enabled + +=cut + +# debugging output +sub debug +{ + if ( $TWiki::cfg{OpenIdRpContrib}{Debug}) { + print STDERR "debug: ".join( ' ', @_ )."\n"; + } +} + =pod ---++ ObjectMethod _LOGIN ($twiki) @@ -152,7 +171,7 @@ my $wwwhost = "www.".($hosts[$#hosts]); push @hosts, $wwwhost; foreach my $dhost ( @hosts ) { - print STDERR "debug: trying icon from $dhost\n"; + debug "trying icon from", $dhost; my $response = $ua->get( "http://$dhost/favicon.ico" ); if ($response->is_success) { my $content = $response->decoded_content; @@ -333,8 +352,8 @@ if ( exists $openid_p{provider} ) { my %ops = @{$TWiki::cfg{OpenIdRpContrib}{OpenIDProviders}}; if ( exists $ops{$openid_p{provider}}) { - print STDERR "debug: provider button selected: $openid_p{provider} " - ."= ".$ops{$openid_p{provider}}."\n"; + debug "provider button selected:", $openid_p{provider}, + "=", $ops{$openid_p{provider}}; $loginName = $ops{$openid_p{provider}}; undef $loginPass; } @@ -375,6 +394,7 @@ consumer_secret => $consumer_secret, required_root => $required_root, args => $query, + debug => $this->{debug}, ); # handle responses @@ -391,6 +411,7 @@ params => [ "Error in OpenID Provider response", '<a href="'.$setup_url.'">setup required</a> for this user', "", "" ]); + return; } elsif ($csr->user_cancel) { # security: don't pass through sensitive info $query->delete( 'origurl', 'username', 'password', @@ -404,6 +425,7 @@ params => [ "OpenID request canceled", 'cancel received from OpenID Provider', "", "" ]); + return; } elsif (my $vident = $csr->verified_identity) { # success, determine WikiName and redirect back as logged-in user @@ -419,6 +441,7 @@ params => [ 'OpenID error', "OpenID Provider did not provide user's identity string", "", "" ]); + return; } # filter for identity providers if we have white or black lists @@ -439,6 +462,7 @@ params => [ 'OpenID error', "OpenID Provider $op_host not allowed at this site", "", "" ]); + return; } # check URL to redirect now-logged-in user to @@ -457,7 +481,7 @@ my $wikiname = ( defined $cUID ) ? $mapping->getWikiName ( $cUID ) : undef; - print STDERR "debug: wn=$wikiname cUID=$cUID openid=".$openid_p{identity}."\n"; + debug "wn=$wikiname cUID=$cUID openid=".$openid_p{identity}; if ( defined $wikiname ) { # log the user in $this->userLoggedIn( $wikiname ); @@ -514,6 +538,7 @@ params => [ 'OpenID error', "New user request requires manual approval.", "Contact the site administrator(s)", "" ]); + return; } # check for WikiName collision, adjust wikiname if necessary @@ -548,6 +573,7 @@ params => [ 'OpenID error', "OpenID Provider did not provide user's full name", "", "" ]); + return; } # save OpenID attributes in OpenID mapper @@ -636,6 +662,7 @@ required_root => $required_root, args => $query, ua => $ua_class->new, + debug => $this->{debug}, ); if ( ! $csr ) { # security: don't pass through sensitive info @@ -669,7 +696,7 @@ # and redirect to OpenID Provider. # This is where HTML and Yadis discovery of the provider are done. my $claimed_id = $csr->claimed_identity($loginName); - print STDERR "debug: login: $loginName claimed ID: $claimed_id\n"; + debug "login:", $loginName, "claimed ID:", $claimed_id; if ($claimed_id) { my $version = $claimed_id->protocol_version; if ( $version == 1 ) { |