The current
OpenID.pm
has a hardcoded
use LWP::UserAgent;
. When you configure the contrib to use a different user, such as:
$TWiki::cfg{OpenIdRpContrib}{ua_class} = "LWPx::ParanoidAgent";
...you get a runtime error.
http://search.cpan.org/~mart/Net-OpenID-Consumer-1.03/lib/Net/OpenID/Consumer.pm
recommends to use
LWPx::ParanoidAgent
.
Fix: Remove the hard-coded
use LWP::UserAgent;
and dynamically load the specified module.
Patch:
--- OpenID.pm.save6 2011-02-07 23:02:34.000000000 -0800
+++ OpenID.pm 2011-04-05 18:01:10.000000000 -0700
@@ -43,7 +43,6 @@
use Error qw( :try ); # included with Perl
use TWiki::LoginManager::TemplateLogin; # included with TWiki
use TWiki::UI::Register; # included with TWiki
-use LWP::UserAgent; # CPAN dependency
use Cache::FileCache; # CPAN dependency
use Net::OpenID::Consumer; # CPAN dependency
@@ -629,6 +628,7 @@
} elsif (( defined $loginName ) and length( $loginName )) {
# we don't have a response, so prepare a request for OpenID provider
+ eval 'require '.$ua_class;
my $csr = Net::OpenID::Consumer->new(
cache => $cache,
consumer_secret => $consumer_secret,
--
TWiki:Main/PeterThoeny
- 2011-04-06