Apache2-Controller
view release on metacpan or search on metacpan
lib/Apache2/Controller/Directives.pm view on Meta::CPAN
name => 'A2C_DBI_User',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_DBI_User database_username',
},
{
name => 'A2C_DBI_Password',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_DBI_Password database_password',
},
{
name => 'A2C_DBI_Options',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::ITERATE2,
errmsg => q{
# specify DBI connect() options:
A2C_DBI_Options RaiseError 1
A2C_DBI_Options AutoCommit 0
},
},
{
name => 'A2C_DBI_Cleanup',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_DBI_Cleanup 1',
},
{
name => 'A2C_DBI_Class',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_DBI_Class MyApp::DBI',
},
{
name => 'A2C_DBI_Pnotes_Name',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_DBI_Pnotes_Name reader',
},
# A2C:Auth::OpenID
{
name => 'A2C_Auth_OpenID_Login',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Login /myapp/login',
},
{
name => 'A2C_Auth_OpenID_Logout',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Logout /myapp/logout',
},
{
name => 'A2C_Auth_OpenID_Register',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Register /myapp/register',
},
{
name => 'A2C_Auth_OpenID_Timeout',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Timeout +1h',
},
{
name => 'A2C_Auth_OpenID_Table',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Table openid',
},
{
name => 'A2C_Auth_OpenID_User_Field',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_User_Field uname',
},
{
name => 'A2C_Auth_OpenID_URL_Field',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_URL_Field openid_url',
},
{
name => 'A2C_Auth_OpenID_DBI_Name',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_DBI_Name dbh',
},
{
name => 'A2C_Auth_OpenID_Trust_Root',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_Trust_Root http://blah.tld/blah',
},
{
name => 'A2C_Auth_OpenID_LWP_Class',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::TAKE1,
errmsg => 'example: A2C_Auth_OpenID_LWP_Class LWPx::ParanoidAgent',
},
{
name => 'A2C_Auth_OpenID_LWP_Opts',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::ITERATE2,
errmsg => q{
# specify options to the LWP class. example:
A2C_Auth_OpenID_LWP_Opts timeout 10
A2C_Auth_OpenID_LWP_Opts agent A2C-openid
A2C_Auth_OpenID_LWP_Opts whitelisted_hosts 127.0.0.1 foo.bar.tld
# (don't whitelist stuff for ParanoidAgent unless you know
# what you're doing... we do this for the test suite)
},
},
{
name => 'A2C_Auth_OpenID_Allow_Login',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::NO_ARGS,
errmsg => 'example: A2C_Auth_OpenID_Allow_Login',
},
{
name => 'A2C_Auth_OpenID_Consumer_Secret',
req_override => Apache2::Const::OR_ALL,
args_how => Apache2::Const::RAW_ARGS,
lib/Apache2/Controller/Directives.pm view on Meta::CPAN
and C<< A2C_Auth_OpenID_Register >>.
Default is the path where the controller is declared, appended with '/login'.
Access will be allowed.
=cut
sub A2C_Auth_OpenID_Login {
my ($self, $parms, $val) = @_;
$val = 'login' if !defined $val;
($val) = $val =~ m{ \A (.*) \z }mxs;
$val = $parms->path.'/'.$val if $val !~ m{ \A / }mxs;
$self->{A2C_Auth_OpenID_Login} = $val;
}
=head2 A2C_Auth_OpenID_Logout
A2C_Auth_OpenID_Logout logout
The URI path for your logout controller page.
Logout is processed automatically, resetting the flag and
timestamp in the session hash. So you just need to present
a page that says "Good riddance" or something.
Same conventions apply as to C<< A2C_Auth_OpenID_Login >>.
Default is the path where the controller is declared, appended with '/logout'.
Access will be allowed.
=cut
sub A2C_Auth_OpenID_Logout {
my ($self, $parms, $val) = @_;
$val = 'logout' if !defined $val;
($val) = $val =~ m{ \A (.*) \z }mxs;
$val = $parms->path.'/'.$val if $val !~ m{ \A / }mxs;
$self->{A2C_Auth_OpenID_Logout} = $val;
}
=head2 A2C_Auth_OpenID_Register
A2C_Auth_OpenID_Register register
The path for your registration page, where you will ask the user
to sign up and associate a username with the openid url.
Same conventions apply as to C<< A2C_Auth_OpenID_Login >>.
Default is the path where the controller is declared, appended with '/register'.
Access will be allowed.
=cut
sub A2C_Auth_OpenID_Register {
my ($self, $parms, $val) = @_;
$val = 'register' if !defined $val;
($val) = $val =~ m{ \A (.*) \z }mxs;
$val = $parms->path.'/'.$val if $val !~ m{ \A / }mxs;
$self->{A2C_Auth_OpenID_Register} = $val;
}
=head2 A2C_Auth_OpenID_Timeout
A2C_Auth_OpenID_Timeout +1h
Idle timeout in seconds, +2m, +3h, +4D, +6M, +7Y, or 'no timeout'.
Default is 1 hour. A month is actually 30 days, a year 365.
If you use 'no timeout' then logins will never expire.
This probably is not a good idea because OpenID url's can
be revoked, and because the login process can be a transparent
series of redirects if the user has something like
Verisign's SeatBelt plugin.
If you're doing some sort of cluster application or load balancing
and sharing the session between servers, make sure all your servers
are synchronized with NTP.
=cut
my %time_multiplier = (
s => 1,
m => 60,
h => 60 * 60,
D => 60 * 60 * 24,
M => 60 * 60 * 24 * 30,
Y => 60 * 60 * 24 * 365,
);
sub A2C_Auth_OpenID_Timeout {
my ($self, $parms, $val) = @_;
$val ||= '+1h';
($val) = $val =~ m{ \A (.*) \z }mxs;
if ($val ne 'no timeout') {
my ($num, $period) = $val =~ m{ \A \+? (\d+) ([YMDhms]?) \z }mxs;
$period ||= 's';
croak("A2C_Auth_OpenID_Timeout invalid format")
if !$num || !exists $time_multiplier{$period};
$val = $num * $time_multiplier{$period};
}
$self->{A2C_Auth_OpenID_Timeout} = $val;
}
=head2 A2C_Auth_OpenID_Table
A2C_Auth_OpenID_Login openid
Name of the table in your connected database containing the
user name and OpenID url fields. Default == "openid".
=cut
sub A2C_Auth_OpenID_Table {
my ($self, $parms, $val) = @_;
$val ||= 'openid';
($val) = $val =~ m{ \A (.*) \z }mxs;
$self->{A2C_Auth_OpenID_Table} = $val;
}
=head2 A2C_Auth_OpenID_User_Field
A2C_Auth_OpenID_User_Field uname
Name of username field in table. Default == "uname".
=cut
sub A2C_Auth_OpenID_User_Field {
my ($self, $parms, $val) = @_;
$val ||= 'uname';
($val) = $val =~ m{ \A (.*) \z }mxs;
$self->{A2C_Auth_OpenID_User_Field} = $val;
}
=head2 A2C_Auth_OpenID_URL_Field
A2C_Auth_OpenID_URL_Field openid_url
Name of OpenID URL field in table. Default == "openid_url".
=cut
sub A2C_Auth_OpenID_URL_Field {
my ($self, $parms, $val) = @_;
$val ||= 'openid_url';
($val) = $val =~ m{ \A (.*) \z }mxs;
$self->{A2C_Auth_OpenID_URL_Field} = $val;
}
=head2 A2C_Auth_OpenID_DBI_Name
A2C_Auth_OpenID_DBI_Name dbh
Name in C<< $r->pnotes->{a2c} >> of the connected L<DBI> handle.
Default == "dbh".
=cut
sub A2C_Auth_OpenID_DBI_Name {
my ($self, $parms, $val) = @_;
$val ||= 'dbh';
( run in 0.786 second using v1.01-cache-2.11-cpan-39bf76dae61 )