• Publicidad

Autenticación con SimpleDB

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Autenticación con SimpleDB

Notapor neoranger » 2014-11-28 10:43 @488

Hola, amigos, tengo una consulta por un tema de autenticación. Estamos armando con el entorno de trabajo Catalyst un servidor de prueba en el cual te registras y accedes a diferentes páginas. La idea es implementar un sistema de autorización y autenticación a la hora de registrarse. Si el login es correcto el usuario puede acceder a las demás páginas, sino rebota y vuelve a la página de login.

El problema es que nosotros ya habíamos armado un login por nuestra cuenta sin seguir el tutorial de Catalyst (https://metacpan.org/pod/Catalyst::Manual::Tutorial::05_Authentication) usando una base de datos MySQL externa a la del tutorial. Ahora, el tutorial me está pidiendo que en el objeto principal del proyecto agregue un package para configurar la autenticación de SimpleDB que es el módulo que usa.

¿Alguno me puede dar una mano para configurar esto? Ya que cuando agrego el package me da error al iniciar el servidor.

Código del objeto principal:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. package MvcTest;
  2. use Moose;
  3. use namespace::autoclean;
  4.  
  5. use Catalyst::Runtime 5.80;
  6.  
  7. # Set flags and add plugins for the application.
  8. #
  9. # Note that ORDERING IS IMPORTANT here as plugins are initialized in order,
  10. # therefore you almost certainly want to keep ConfigLoader at the head of the
  11. # list if you're using it.
  12. #
  13. #         -Debug: activates the debug mode for very useful log messages
  14. #   ConfigLoader: will load the configuration from a Config::General file in the
  15. #                 application's home directory
  16. # Static::Simple: will serve static files from the application's root
  17. #                 directory
  18.  
  19. use Catalyst qw/
  20.     -Debug
  21.     ConfigLoader
  22.     Static::Simple
  23.  
  24.     StackTrace
  25.  
  26.     Authentication
  27.  
  28.     Session
  29.     Session::Store::File
  30.     Session::State::Cookie
  31. /;
  32.  
  33. extends 'Catalyst';
  34.  
  35. our $VERSION = '0.01';
  36.  
  37. # Configure the application.
  38. #
  39. # Note that settings in mvctest.conf (or other external
  40. # configuration file that you set up manually) take precedence
  41. # over this when using ConfigLoader. Thus configuration
  42. # details given here can function as a default configuration,
  43. # with an external configuration file acting as an override for
  44. # local deployment.
  45.  
  46. __PACKAGE__->config(
  47.     name => 'MvcTest',
  48.     # Disable deprecated behavior needed by old applications
  49.     disable_component_resolution_regex_fallback => 1,
  50.     enable_catalyst_header => 1, # Send X-Catalyst header
  51. );
  52.  
  53. __PACKAGE__->config(
  54.     # Configure the view
  55.     'View::HTML' => {
  56.         #Set the location for TT files
  57.         INCLUDE_PATH => [
  58.             __PACKAGE__->path_to( 'root', 'views' ),
  59.         ],
  60.     }
  61. );
  62.  
  63. __PACKAGE__->config(
  64.         'View::JSON' => {
  65.           allow_callback  => 1,    # defaults to 0
  66.           callback_param  => 'cb', # defaults to 'callback'
  67.           #expose_stash    => [ qw(json_data json_status) ], # defaults to everything
  68.           #expose_stash    => 'json_data', # defaults to everything
  69.           #expose_stash => [ qr/^json_/ ]
  70.       }
  71.     );
  72.  
  73. # Start the application
  74. __PACKAGE__->setup();
  75.  
  76. #Agregado por Natanael
  77. #Configure SimpleDB Authentication
  78. __PACKAGE__->config(
  79.     'Plugin::Authentication' => {
  80.         default => {
  81.             class           => 'SimpleDB',
  82.             user_model      => 'DB::User',
  83.             password_type   => 'clear',
  84.         },
  85.     },
  86. );
  87. #Fin Nata
  88.  
  89. =encoding utf8
  90.  
  91. =head1 NAME
  92.  
  93. MvcTest - Catalyst based application
  94.  
  95. =head1 SYNOPSIS
  96.  
  97.     script/mvctest_server.pl
  98.  
  99. =head1 DESCRIPTION
  100.  
  101. [enter your description here]
  102.  
  103. =head1 SEE ALSO
  104.  
  105. L<MvcTest::Controller::Root>, L<Catalyst>
  106.  
  107. =head1 AUTHOR
  108.  
  109. Catalyst developer
  110.  
  111. =head1 LICENSE
  112.  
  113. This library is free software. You can redistribute it and/or modify
  114. it under the same terms as Perl itself.
  115.  
  116. =cut
  117.  
  118. 1;
  119.  
Coloreado en 0.008 segundos, usando GeSHi 1.0.8.4
"Ante muchos ojos todos los errores son obvios." Linus Torvalds
Avatar de Usuario
neoranger
Perlero nuevo
Perlero nuevo
 
Mensajes: 34
Registrado: 2014-11-17 08:10 @382

Publicidad

Re: Autenticacion con SimpleDB

Notapor neoranger » 2014-11-28 11:00 @500

Ya encontré uno de los problemas, habíamos definido un paquete después de la función start(). Ahora el servidor levanta bien pero no sé bien cómo hacer para que vaya a nuestra base de datos o que vaya al método para registrarse una vez que ingreso los datos. Me rebota cuando el usuario está mal o bien.
"Ante muchos ojos todos los errores son obvios." Linus Torvalds
Avatar de Usuario
neoranger
Perlero nuevo
Perlero nuevo
 
Mensajes: 34
Registrado: 2014-11-17 08:10 @382

Re: Autenticación con SimpleDB

Notapor neoranger » 2014-12-01 10:00 @458

En la configuración, al poner la clase como 'MySQL' no funciona, ya que quiero que vaya contra la base donde tengo alojado el usuario y contraseña a validar. Me pide que instale el módulo de autenticación para MySQL pero cuando lo busco en el CPAN no está. ¿Alguno me puede dar una mano?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #Configure SimpleDB Authentication
  2. __PACKAGE__->config(
  3.     'Plugin::Authentication' => {
  4.         default => {
  5. # Acá se genera el error ya que al poner 'MySQL' el servidor no levanta porque no encuentra esa clase
  6.             class           => 'MySQL',
  7.             user_model      => 'DB::User',
  8.             password_type   => 'clear',
  9.         },
  10.     },
  11. );
  12.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
"Ante muchos ojos todos los errores son obvios." Linus Torvalds
Avatar de Usuario
neoranger
Perlero nuevo
Perlero nuevo
 
Mensajes: 34
Registrado: 2014-11-17 08:10 @382

Re: Autenticación con SimpleDB

Notapor explorer » 2014-12-01 14:09 @631

Si pones class => 'MySQL', el módulo Plugin::Authentication intentará cargar el módulo Catalyst::Authentication::Credential::MySQL.

Al menos creo que eso es lo que pone en la página de manual de Plugin::Authentication.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Autenticación con SimpleDB

Notapor neoranger » 2014-12-01 14:40 @653

Sí, estuve averiguando en el canal #catalyst de irc.perl.org y me dijeron que puedo hacerlo con el SimpleDB, no hace falta poner MySQL ahí, pero debería usar el módulo DBIx::Class. ¿Tenés idea de cómo se usa?

Quiero autenticar contra la base de datos donde tengo el usuario y contraseña que uso para el login.

P.D.: ¿No se te ocurrió hacer un canal IRC de Perl en español? No hay y para los que no hablamos mucho inglés se nos hace difícil hacer consultas en el canal oficial.
"Ante muchos ojos todos los errores son obvios." Linus Torvalds
Avatar de Usuario
neoranger
Perlero nuevo
Perlero nuevo
 
Mensajes: 34
Registrado: 2014-11-17 08:10 @382

Re: Autenticación con SimpleDB

Notapor explorer » 2014-12-01 16:36 @733

Hay que usar más el sistema de búsqueda...

Nuevo canal de IRC
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron