From: Marius Gavrilescu Date: Mon, 2 Mar 2015 14:05:33 +0000 (+0200) Subject: Call init at first request to allow --preload-app X-Git-Tag: 0.001001~2 X-Git-Url: http://git.ieval.ro/?a=commitdiff_plain;h=d332726d5726e639bc597493c3db9e79fe5a0174;p=plack-middleware-auth-complex.git Call init at first request to allow --preload-app --- diff --git a/lib/Plack/Middleware/Auth/Complex.pm b/lib/Plack/Middleware/Auth/Complex.pm index 758e0c2..ac70da6 100644 --- a/lib/Plack/Middleware/Auth/Complex.pm +++ b/lib/Plack/Middleware/Auth/Complex.pm @@ -43,7 +43,6 @@ sub new { my %self = $class->default_opts; %self = (%self, %$opts); my $self = bless \%self, $class; - $self->init; $self } @@ -232,6 +231,12 @@ sub call_reset { sub call { my ($self, $env) = @_; + + unless ($self->{init_done}) { + $self->init; + $self->{init_done} = 1; + } + my $auth = $env->{HTTP_AUTHORIZATION}; if ($auth && $auth =~ /^Basic (.*)$/i) { my ($user, $pass) = split /:/, decode_base64($1), 2; @@ -420,7 +425,7 @@ Creates a new AuthComplex object. =item B -Called at the end of the constructor. The default implementation +Called when the first request is received. The default implementation connects to the database, calls C and prepares the SQL statements.