This is the release version for 0.03, or very close to it. Just v0.03
Ashley Pond V [Fri, 20 Jun 2008 03:51:23 +0000 (03:51 +0000)]
checking if I can even check it in (first time). Only real changes are
to docs to show Config::General examples.

Changes
Makefile.PL
README
lib/Catalyst/Authentication/Credential/OpenID.pm
t/TestApp/lib/TestApp.pm
t/TestApp/lib/TestApp/Controller/Root.pm

diff --git a/Changes b/Changes
index 1e5ce3f..a99a4bf 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,12 @@
 Revision history for Catalyst::Authentication::Credential::OpenID
 
+0.03  Thu Jun 19 20:48:04 PDT 2008
+      - Updated config information with Config::General examples.
+      - Cleaned up TestApp a little.
+      - Swapped some code order around to make Perl::Critic my friend.
+      - Extended SEE ALSO.
+      - Updated Makefile a bit.
+
 0.02  Tue Apr  8 22:18:22 PDT 2008
       - Changed "use base" to "use parent."
       - Moved SVN to Catalyst dev box.
index d7369c8..3aa310c 100644 (file)
@@ -1,8 +1,5 @@
 use inc::Module::Install;
 
-# use lib 'inc';
-# use Devel::AssertOS qw( Linux Unix Cygwin );
-
 name            "Catalyst-Authentication-Credential-OpenID";
 all_from        "lib/Catalyst/Authentication/Credential/OpenID.pm";
 
@@ -15,7 +12,8 @@ requires  "Catalyst::Exception"   => 0;
 requires  "UNIVERSAL::require"    => 0;
 requires  "Catalyst::Authentication::User::Hash" => 0;
 
-
+recommends "Config::General"     => "2";
+recommends "YAML"                => ".6";
 recommends "LWPx::ParanoidAgent" => "1.03";
 recommends "Math::BigInt"        => 0;
 
diff --git a/README b/README
index 1e8ecf9..d65bdac 100644 (file)
--- a/README
+++ b/README
@@ -10,6 +10,7 @@ To install this module, run the following commands:
 
        perl Makefile.PL
        make
+        # See below for TEST_HTTP info
        make test
        make install
 
@@ -20,4 +21,9 @@ within a test Catalyst application. Failure here doesn't guarantee the
 module won't work for you but success pretty much guarantees it will
 work.
 
+  # bash
+  export TEST_HTTP=1
+
+  # tcsh and friends
+  setenv TEST_HTTP 1
 
index 307cbd0..fa6b2d0 100644 (file)
@@ -1,15 +1,14 @@
 package Catalyst::Authentication::Credential::OpenID;
+use strict;
+use warnings;
+no warnings "uninitialized";
 use parent "Class::Accessor::Fast";
 
 BEGIN {
     __PACKAGE__->mk_accessors(qw/ _config realm debug secret /);
 }
 
-use strict;
-use warnings;
-no warnings "uninitialized";
-
-our $VERSION = "0.02";
+our $VERSION = "0.03";
 
 use Net::OpenID::Consumer;
 use UNIVERSAL::require;
@@ -118,25 +117,25 @@ sub authenticate : method {
                                        $csr->err);
         }
     }
-    else
-    {
-        return;
-    }
+    return;
 }
 
 1;
 
 __END__
 
-=pod
-
 =head1 NAME
 
 Catalyst::Authentication::Credential::OpenID - OpenID credential for L<Catalyst::Plugin::Authentication> framework.
 
+=head1 VERSION
+
+0.03
+
 =head1 SYNOPSIS
 
- # MyApp
+In MyApp.pm.
+
  use Catalyst qw/
     Authentication
     Session
@@ -144,15 +143,35 @@ Catalyst::Authentication::Credential::OpenID - OpenID credential for L<Catalyst:
     Session::State::Cookie
  /;
 
- # MyApp.yaml --
+Somewhere in myapp.conf.
+
+ <Plugin::Authentication>
+     default_realm   openid
+     <realms>
+         <openid>
+             ua_class   LWPx::ParanoidAgent
+             <credential>
+                 <store>
+                     class   OpenID
+                 </store>
+                 class   OpenID
+             </credential>
+         </openid>
+     </realms>
+ </Plugin::Authentication>
+
+Or in your myapp.yml if you're using L<YAML> instead.
+
  Plugin::Authentication:
    default_realm: openid
    realms:
      openid:
        credential:
          class: OpenID
+       ua_class: LWPx::ParanoidAgent
+
+In a controller, perhaps C<Root::openid>.
 
- # Root::openid().
  sub openid : Local {
       my($self, $c) = @_;
 
@@ -167,13 +186,13 @@ Catalyst::Authentication::Credential::OpenID - OpenID credential for L<Catalyst:
       }
  }
 
- # openid.tt
+And a L<Template> to match in C<openid.tt>.
+
  <form action="[% c.uri_for('/openid') %]" method="GET" name="openid">
  <input type="text" name="openid_identifier" class="openid" />
  <input type="submit" value="Sign in with OpenID" />
  </form>
 
-
 =head1 DESCRIPTION
 
 This is the B<third> OpenID related authentication piece for
@@ -184,15 +203,15 @@ Miyagawa -- and this is an attempt to deprecate both by conforming to
 the newish, at the time of this module's inception, realm-based
 authentication in L<Catalyst::Plugin::Authentication>.
 
- * Catalyst::Plugin::Authentication::OpenID (first)
- * Catalyst::Plugin::Authentication::Credential::OpenID (second)
- * Catalyst::Authentication::Credential::OpenID (this, the third)
+ 1. Catalyst::Plugin::Authentication::OpenID
+ 2. Catalyst::Plugin::Authentication::Credential::OpenID
+ 3. Catalyst::Authentication::Credential::OpenID
 
 The benefit of this version is that you can use an arbitrary number of
 authentication systems in your L<Catalyst> application and configure
 and call all of them in the same way.
 
-Note, both earlier versions of OpenID authentication use the method
+Note that both earlier versions of OpenID authentication use the method
 C<authenticate_openid()>. This module uses C<authenticate()> and
 relies on you to specify the realm. You can specify the realm as the
 default in the configuration or inline with each
@@ -206,7 +225,7 @@ implementation.
 
 =over 4
 
-=item * $c->authenticate({},"your_openid_realm");
+=item $c->authenticate({},"your_openid_realm");
 
 Call to authenticate the user via OpenID. Returns false if
 authorization is unsuccessful. Sets the user into the session and
@@ -224,7 +243,7 @@ It implicitly does this (sort of, it checks the request method too)-
  my $claimed_uri = $c->req->params->{openid_identifier};
  $c->authenticate({openid_identifier => $claimed_uri});
 
-=item * Catalyst::Authentication::Credential::OpenID->new()
+=item Catalyst::Authentication::Credential::OpenID->new()
 
 You will never call this. Catalyst does it for you. The only important
 thing you might like to know about it is that it merges its realm
@@ -239,23 +258,23 @@ Currently the only supported user class is L<Catalyst::Plugin::Authentication::U
 
 =over 4
 
-=item * $c->user->url
+=item $c->user->url
 
-=item * $c->user->display
+=item $c->user->display
 
-=item * $c->user->rss 
+=item $c->user->rss 
 
-=item * $c->user->atom
+=item $c->user->atom
 
-=item * $c->user->foaf
+=item $c->user->foaf
 
-=item * $c->user->declared_rss
+=item $c->user->declared_rss
 
-=item * $c->user->declared_atom
+=item $c->user->declared_atom
 
-=item * $c->user->declared_foaf
+=item $c->user->declared_foaf
 
-=item * $c->user->foafmaker
+=item $c->user->foafmaker
 
 =back
 
@@ -310,7 +329,45 @@ clear text passwords and one called "openid" which uses... uh, OpenID.
       },
       );
 
-And now, the same configuration in YAML.
+This is the same configuration in the default L<Catalyst> configuration format from L<Config::General>.
+
+ name   MyApp
+ <Plugin::Authentication>
+     default_realm   members
+     <realms>
+         <members>
+             <store>
+                 class   Minimal
+                 <users>
+                     <paco>
+                         password   l4s4v3n7ur45
+                     </paco>
+                 </users>
+             </store>
+             <credential>
+                 password_field   password
+                 password_type   clear
+                 class   Password
+             </credential>
+         </members>
+         <openid>
+             <ua_args>
+                 whitelisted_hosts   127.0.0.1
+                 whitelisted_hosts   localhost
+             </ua_args>
+             consumer_secret   Don't bother setting
+             ua_class   LWPx::ParanoidAgent
+             <credential>
+                 <store>
+                     class   OpenID
+                 </store>
+                 class   OpenID
+             </credential>
+         </openid>
+     </realms>
+ </Plugin::Authentication>
+
+And now, the same configuration in L<YAML>. B<NB>: L<YAML> is whitespace sensitive.
 
  name: MyApp
  Plugin::Authentication:
@@ -340,13 +397,13 @@ And now, the same configuration in YAML.
 
 B<NB>: There is no OpenID store yet. Trying for next release.
 
-=head1 CONFIGURATION
+=head2 MORE ON CONFIGURATION
 
 These are set in your realm. See above.
 
 =over 4
 
-=item * ua_args and ua_class
+=item ua_args and ua_class
 
 L<LWPx::ParanoidAgent> is the default agent -- C<ua_class>. You don't
 have to set it. I recommend that you do B<not> override it. You can
@@ -357,7 +414,7 @@ external requests, you open a big avenue for DoS (denial of service)
 attacks. L<LWPx::ParanoidAgent> defends against this.
 L<LWP::UserAgent> and any regular subclass of it will not.
 
-=item * consumer_secret
+=item consumer_secret
 
 The underlying L<Net::OpenID::Consumer> object is seeded with a
 secret. If it's important to you to set your own, you can. The default
@@ -367,7 +424,6 @@ longer). This should generally be superior to any fixed string.
 
 =back
 
-
 =head1 TODO
 
 There are some interesting implications with this sort of setup. Does
@@ -390,7 +446,6 @@ Tatsuhiko Miyagawa's work is reused here.
 This module is free software; you can redistribute it and modify it
 under the same terms as Perl itself. See L<perlartistic>.
 
-
 =head1 DISCLAIMER OF WARRANTY
 
 Because this software is licensed free of charge, there is no warranty
@@ -414,7 +469,6 @@ failure of the software to operate with any other software), even if
 such holder or other party has been advised of the possibility of
 such damages.
 
-
 =head1 THANKS
 
 To Benjamin Trott, Tatsuhiko Miyagawa, and Brad Fitzpatrick for the
@@ -423,14 +477,29 @@ Catalyst such a wonderful framework.
 
 =head1 SEE ALSO
 
-L<Catalyst>, L<Catalyst::Plugin::Authentication>,
-L<Net::OpenID::Consumer>, and L<LWPx::ParanoidAgent>.
+=over 4
 
-=head2 RELATED
+=item OpenID
 
 L<Net::OpenID::Server>, L<Net::OpenID::VerifiedIdentity>,
+L<Net::OpenID::Consumer>, and L<LWPx::ParanoidAgent>.
+
 L<http://openid.net/>, and L<http://openid.net/developers/specs/>.
 
+=item Catalyst Authentication
+
+L<Catalyst>, L<Catalyst::Plugin::Authentication>, L<Catalyst::Manual::Tutorial::Authorization>, and L<Catalyst::Manual::Tutorial::Authentication>.
+
+=item Catalyst Configuraiton
+
+L<Catalyst::Plugin::ConfigLoader>, L<Config::General>, and L<YAML>.
+
+=item Miscellaneous
+
+L<Catalyst::Manual::Tutorial::CatalystBasics>, L<Template>, L<LWPx::ParanoidAgent>.
+
+=back
+
 L<Catalyst::Plugin::Authentication::OpenID> (Benjamin Trott) and L<Catalyst::Plugin::Authentication::Credential::OpenID> (Tatsuhiko Miyagawa).
 
 =cut
index 13b96b3..a904394 100644 (file)
@@ -62,62 +62,3 @@ __PACKAGE__->setup;
 1;
 
 __END__
-
-=pod
-
-package TestApp;
-
-use Catalyst qw/
-    Authentication
-    /;
-
-use Test::More;
-use Test::Exception;
-
-sub provider : Local {
-
-
-}
-
-sub user : Local {
-    my ( $self, $c ) = @_;
-
-    ok(!$c->user, "no user");
-
-    is( $c->user, $users->{foo}, "user object is in proper place");
-
-    ok( !$c->user->roles, "no roles for foo" );
-    my @new = qw/foo bar gorch/;
-    $c->user->roles( @new );
-    is_deeply( [ $c->user->roles ], \@new, "roles set as array");
-
-    $c->logout;
-    ok(!$c->user, "no more user, after logout");
-
-    $c->res->body( "ok" );
-}
-
-__PACKAGE__->config
-    (
-     "Plugin::Authentication" => {
-                                  default_realm => "OpenID",
-                                  realms => {
-                                             "OpenID" => {
-                                                          credential => {
-                                                                         class => "OpenID",
-#DOES NOTHING YET                                                                     use_session => 1
-                                                                         store => {
-                                                                                   class => "OpenID",
-                                                                                  },
-                                                                        },
-                                                         },
-                                            },
-                                 },
-    );
-#        class: Null
-#implied already        user_class: Catalyst::Authentication::User::Hash
-    };
-
-__PACKAGE__->setup;
-
-=cut
index 58664b4..5d61784 100644 (file)
@@ -10,15 +10,14 @@ __PACKAGE__->config->{namespace} = '';
 
 =head1 NAME
 
-TestApp::Controller::Root - Root Controller for TestApp
+TestApp::Controller::Root - Root Controller for TestApp.
 
 =head1 DESCRIPTION
 
-D'er... testing.
+D'er... testing. Has an OpenID provider to test the OpenID credential against.
 
 =cut
 
-
 sub provider : Local {
     my ( $self, $c, $username ) = @_;
 
@@ -103,7 +102,6 @@ sub login : Local {
     }
 }
 
-
 sub signin_openid : Local {
     my($self, $c) = @_;
 
@@ -142,7 +140,7 @@ sub end : Private {
 
 =head1 LICENSE
 
-This library is free software, you can redistribute it and/or modify
+This library is free software, you can redistribute it and modify
 it under the same terms as Perl itself.
 
 =cut