Hello

In a quite simple application

__PACKAGE__->config('Plugin::Authentication' =>
                    {
                     default_realm => 'members',
                     realms => {
                                members => {
                                            credential => {
class => '+Admin::Util::OldPassword',
password_field => 'password',
password_type => 'self_check',
                                                          },
                                            store => {
class => 'DBIx::Class', user_model => 'DB::InfEmployeeTab',
                                                     }
                                           }
                               }
                    });

Later, in Controller::Root

    $c->authenticate( { login => 'login', password => 'password' } );

(I'm just checking if everything is wired properly)

I get

[error] Caught exception in Admin::Controller::Root->index "Can't use string ("Catalyst::Authentication::Store:"...) as a HASH ref while "strict refs" in use at accessor Catalyst::Authentication::Store::DBIx::Class::User::_user (defined at /usr/local/lib/perl5/site_perl/5.14/Catalyst/Authentication/Store/DBIx/Class/User.pm line 12) line 5, <DATA> line 1003."

My password class has nothing to get wrong, and replacing it with default C::A::Credential::Password does not change anything

running under perl -d , script works just fine. Running without debug mode, it does not even reach my module.

I have no idea where to look next.

Here is debug output

Caught exception in Admin::Controller::Root->index "Can't use string ("Catalyst::Authentication::Store:"...) as a HASH ref while "strict refs" in use at accessor Catalyst::Authentication::Store::DBIx::Class::User::_user (defined at /usr/local/lib/perl5/site_perl/5.14/Catalyst/Authentication/Store/DBIx/Class/User.pm line 12) line 5, <DATA> line 1003."

Request

do {
  require Symbol;
  my $a = bless({
    _log             => bless({
_body => "[info] *** Request 1 (0.333/s) [19146] [Mon Aug 26 19:44:43 2013] ***\n[debug] Path is \"/\"\n[debug] \"GET\" request for \"/\" from \"195.170.223.197\"\n[error] Caught exception in Admin::Controller::Root->index \"Can't use string (\"Catalyst::Authentication::Store:\"...) as a HASH ref while \"strict refs\" in use at accessor Catalyst::Authentication::Store::DBIx::Class::User::_user (defined at /usr/local/lib/perl5/site_perl/5.14/Catalyst/Authentication/Store/DBIx/Class/User.pm line 12) line 5, <DATA> line 1003.\"\n",
                          _psgi_errors => *main::STDERR,
                          level => 31,
                        }, "Catalyst::Log"),
    _path            => "",
    _read_length     => 0,
    _read_position   => 0,
    action           => "/",
    address          => "195.170.223.197",
    arguments        => [],
base => bless(do{\(my $o = "http://corp.infotel.ru:3000/";)}, "URI::http"),
    body_parameters  => {},
    captures         => [],
    cookies          => {
                          admin_session => bless({
                            name  => "admin_session",
                            path  => "/",
value => ["ecf2b994cddc2aa02145005778961e5a06774b3b"],
                          }, "CGI::Simple::Cookie"),
                          e37551640d343da16a59042e6370102e => bless({
                            name  => "e37551640d343da16a59042e6370102e",
                            path  => "/",
                            value => ["jac13b5c06jqd96vn57dbjpgh6"],
                          }, "CGI::Simple::Cookie"),
                          PHPSESSID => bless({
                            name  => "PHPSESSID",
                            path  => "/",
                            value => ["meutdakp8mgf9to12iaq01dkh3"],
                          }, "CGI::Simple::Cookie"),
                        },
    env              => {
"HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                          "HTTP_ACCEPT_ENCODING" => "gzip,deflate,sdch",
"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.8,ru;q=0.6",
                          "HTTP_CACHE_CONTROL"   => "max-age=0",
                          "HTTP_CONNECTION"      => "keep-alive",
"HTTP_COOKIE" => "e37551640d343da16a59042e6370102e=jac13b5c06jqd96vn57dbjpgh6; PHPSESSID=meutdakp8mgf9to12iaq01dkh3; admin_session=ecf2b994cddc2aa02145005778961e5a06774b3b",
                          "HTTP_HOST"            => "corp.infotel.ru:3000",
                          "HTTP_PRAGMA"          => "no-cache",
"HTTP_USER_AGENT" => "Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36",
                          "PATH_INFO"            => "/",
                          "psgi.errors"          => *main::STDERR,
"psgi.input" => \*HTTP::Server::PSGI::$input,
                          "psgi.multiprocess"    => "",
                          "psgi.multithread"     => "",
                          "psgi.nonblocking"     => "",
                          "psgi.run_once"        => "",
                          "psgi.streaming"       => 1,
                          "psgi.url_scheme"      => "http",
                          "psgi.version"         => [1, 1],
                          "psgix.harakiri"       => 1,
                          "psgix.input.buffered" => 1,
"psgix.io" => bless(Symbol::gensym(), "IO::Socket::INET"),
                          "QUERY_STRING"         => "",
                          "REMOTE_ADDR"          => "195.170.223.197",
                          "REMOTE_PORT"          => 35202,
                          "REQUEST_METHOD"       => "GET",
                          "REQUEST_URI"          => "/",
                          "SCRIPT_NAME"          => "",
                          "SERVER_NAME"          => 0,
                          "SERVER_PORT"          => 3000,
                          "SERVER_PROTOCOL"      => "HTTP/1.1",
                        },
    headers          => bless({
                          "::std_case"      => { cookie => "COOKIE" },
"accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                          "accept-encoding" => "gzip,deflate,sdch",
                          "accept-language" => "en-US,en;q=0.8,ru;q=0.6",
                          "cache-control"   => "max-age=0",
                          "connection"      => "keep-alive",
"cookie" => "e37551640d343da16a59042e6370102e=jac13b5c06jqd96vn57dbjpgh6; PHPSESSID=meutdakp8mgf9to12iaq01dkh3; admin_session=ecf2b994cddc2aa02145005778961e5a06774b3b",
                          "host"            => "corp.infotel.ru:3000",
                          "pragma"          => "no-cache",
"user-agent" => "Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36",
                        }, "HTTP::Headers"),
    match            => "/",
    method           => "GET",
    parameters       => {},
    protocol         => "HTTP/1.1",
    query_keywords   => "",
    query_parameters => {},
    remote_user      => undef,
    secure           => 0,
    uploads          => {},
uri => bless(do{\(my $o = "http://corp.infotel.ru:3000/";)}, "URI::http"),
  }, "Catalyst::Request");
  *{$a->{env}{"psgix.io"}} = {
    io_socket_peername => pack("H*","10028982c3aadfc50000000000000000"),
    io_socket_timeout  => undef,
  };
  $a;
}
Response

bless({
  _log => bless({
_body => "[info] *** Request 1 (0.333/s) [19146] [Mon Aug 26 19:44:43 2013] ***\n[debug] Path is \"/\"\n[debug] \"GET\" request for \"/\" from \"195.170.223.197\"\n[error] Caught exception in Admin::Controller::Root->index \"Can't use string (\"Catalyst::Authentication::Store:\"...) as a HASH ref while \"strict refs\" in use at accessor Catalyst::Authentication::Store::DBIx::Class::User::_user (defined at /usr/local/lib/perl5/site_perl/5.14/Catalyst/Authentication/Store/DBIx/Class/User.pm line 12) line 5, <DATA> line 1003.\"\n",
    _psgi_errors => *main::STDERR,
    level => 31,
  }, "Catalyst::Log"),
  _response_cb => sub { ... },
  body => undef,
  cookies => {},
  finalized_headers => 0,
  headers => bless({
    "::std_case"   => { "x-catalyst" => "X-Catalyst" },
    "content-type" => "text/html; charset=utf-8",
    "x-catalyst"   => "5.90040",
  }, "HTTP::Headers"),
  status => 200,
}, "Catalyst::Response")
Stash

{}
Config

do {
  my $a = {
    "Action::RenderView" => {
      ignore_classes => [
                          "DBIx::Class::ResultSource::Table",
                          "DBIx::Class::ResultSourceHandle",
                          "DateTime",
                        ],
      scrubber_func  => sub { ... },
    },
    "default_view" => "HTML",
    "disable_component_resolution_regex_fallback" => 1,
    "enable_catalyst_header" => 1,
    "home" => "/home/tarkhil/work/Admin",
    "name" => "Admin",
    "Plugin::Authentication" => {
      default_realm => "members",
      realms => {
        members => {
          credential => {
            class => "+Admin::Util::OldPassword",
            password_field => "password",
            password_hash_type => "SHA-1",
            password_type => "self_check",
          },
          store => {
            class => "DBIx::Class",
            id_field => ["login"],
            ignore_fields_in_find => [],
            lazyload => 0,
store_user_class => "Catalyst::Authentication::Store::DBIx::Class::User",
            user_model => "DB::InfEmployeeTab",
          },
          use_session => 1,
        },
      },
      use_session => 1,
    },
    "Plugin::ConfigLoader" => {},
    "Plugin::Session" => {
      cookie_name => "admin_session",
      expires => 7200,
      storage => "/tmp/admin/session_data",
      verify_address => 0,
      verify_user_agent => 0,
    },
    "Plugin::Static::Simple" => {
      debug => 1,
      dirs => [],
      ignore_dirs => [],
      ignore_extensions => ["tmpl", "tt", "tt2", "html", "xhtml"],
      include_path => [
        bless({
          dirs => ["", "home", "tarkhil", "work", "Admin", "root"],
          file_spec_class => undef,
          volume => "",
        }, "Path::Class::Dir"),
      ],
      mime_types => {},
      mime_types_obj => bless({}, "MIME::Types"),
      no_logs => 1,
    },
    "root" => 'fix',
    "static" => 'fix',
  };
  $a->{"root"} = $a->{"Plugin::Static::Simple"}{include_path}[0];
  $a->{"static"} = $a->{"Plugin::Static::Simple"};
  $a;
}


_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to