OpenID Client on Perl

今回、TogoDoc で利用している OpenID のクライアントモジュールをNet::OpenID::Consumerから OpenID4Perl に変更。というよりは、追加という状況。Perlのコードそのものは何も変更せず。

さて、Consumer.pm は Crypt::DH を利用しており、DH.pm の冒頭には以下のコードがある。

use Math::BigInt lib => "GMP,Pari";

そして、TogoDoc では、Pari を利用しているため、Math::BigInt から Pari ライブラリを呼ぶ形になる。このため、Math::BigInt::Pari をインストールする。そうしないと、Crypt::DHを利用する際に、以下のような警告が出力される。

Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at .../local/lib/perl5/site_perl/5.10.1/Crypt/DH.pm line 6

また、Pari のスタックサイズの変更は最初にモジュールがロードされる前に宣言せねばならず、そしてmod_perl (2.0) 利用環境下でPariモジュールをロードするので、下記宣言を startup.pl に記述。

use Math::PariInit qw( stack=1e9 );

OpenID4Perl にすることで、一部のプロバイダのOpenIDでログイン出来なかった問題が解消された。