PAPI Archivos

The PAPI authentication and authorization framework

PAPI@LISTSERV.REDIRIS.ES

Opciones: Vista Forum

Use Monospaced Font
Por defecto enseñar Text Part
Mostrar todas las cabeceras de correo

Mensaje: [<< Primero] [< Prev] [Siguiente >] [Último >>]
Tema: [<< Primero] [< Prev] [Siguiente >] [Último >>]
Autor: [<< Primero] [< Prev] [Siguiente >] [Último >>]

Print Responder
Subject:
Emisor:
Antonio José García Lagar <[log in para visualizar]>
Reply To:
The PAPI authentication and authorization framework <[log in para visualizar]>
Fecha:
Mon, 6 Apr 2009 11:27:11 +0200
Content-Type:
text/plain
Parts/Attachments:
text/plain (180 lines)
El Monday 06 April 2009 10:39:37 Antonio Jos Garca Lagar escribi:
> El Monday 06 April 2009 00:28:28 Diego R. Lopez escribi:
> > Hola,
> >
> > On 31 Mar 2009, at 13:22, Antonio Jos Garca Lagar wrote:
> > > El primero es una duda general: como puedo acceder desde el
> > > FormProcessor a
> > > valores que vengan en la asercin del AS.
> >
> > Cada atributo que viene en la asercion esta disponible en un array,
> > que esta
> > en $poa->{attrList}. El nombre del atributo esta en los elementos 2i y
> > el
> > valor en los 2i+1 (i va de 0 al numero de atributos).
> > Asi que poniendo en las expresiones $poa->{attrList}[X] deberias poder
> > accederlos.
>
> Gracias, esto ya haba conseguido solucionarlo.
>
> > > Por otro lado estoy teniendo problemas en configurar el proxy para
> > > Proquest con
> > > el acceso a travs del FormProcessor. Esta es mi configuracin
> > >
> > > <Server name="proquest.papi.example.org" port="80"
> > > independent="false">
> > >        <Location path="/" id="proquest" filtered="true"
> > > independent="false">
> > >            <Hcook_DB>/usr/local/PAPI/etc/hcookdb</Hcook_DB>
> > >            <GPoA_URL>wayf:built-in</GPoA_URL>
> > >            <Req_DB>/usr/local/PAPI/etc/requestdb</Req_DB>
> > >            <Remote_URL>http://proquest.umi.com</Remote_URL>
> > >            <Form_Processor url="http://proquest.umi.com/pqdweb"
> > > form_index="2">
> > >                <Field name="COPT"></Field>
> > >                <Field name="Password">pass</Field>
> > >                <Field name="RQT">301</Field>
> > >                <Field name="UserId">user</Field>
> > >                <Field name="int">0</Field>
> > >                <Field name="lang">es</Field>
> > >            </Form_Processor>
> > >
> > >            <Eval_Proxy_Redirects>0</Eval_Proxy_Redirects>
> > >        </Location>
> > >    </Server>
> > >
> > > Alquien que lo tenga funcionando aunque sea con la versin 1.4 podra
> > > enviarme su configuracin o echarme una mano?
> > >
> > > Lo que quiero con la primera cuestin es que el usuario y la
> > > password vinieran
> > > en la asercin userid=user,password=pass guardada en el directorio
> > > LDAP y
> > > poder leerlo desde ah.
> >
> > Me temo que nunca he configurado ese modo de acceso para ProQuest (ni
> > en 1.4 ni 1.5).
> > He echado un vistazo por el sitio y lo curioso es que usa un form para
> > el username
> > y otro para el password, con Javascript por medio. Esto puede hacer
> > que el parser del
> > proxy se haga un lio a la hora de llenar el form con los valores
> > adecuados, porque
> > puede que los valores "hidden" no los trate bien. Creo que lo mas
> > adecuado seria
> > analizar el trafico y ver lo que se envia realmente a traves del proxy.
>
> Respecto a esto, he conseguido poner el mod_perl en modo debug interactivo,
> y estoy bastante perdido. En la pgina como tu dices, hay dos formularios,
> pero de ambos, el Form_Processor solo identifica los campos tipo hidden:
>
> userIdForm:
> $VAR1 = bless( {
>                  'base' => undef,
>                  'link' => '/pqdweb',
>                  'selections' => {},
>                  'buttonvals' => {},
>                  'allfields' => [
>                                   'RQT',
>                                   'COPT',
>                                   'Passwd'
>                                 ],
>                  'name' => 'userIdForm',
>                  'fieldtypes' => {
>                                    'Passwd' => 'input/hidden',
>                                    'COPT' => 'input/hidden',
>                                    'RQT' => 'input/hidden'
>                                  },
>                  'checkboxstate' => {},
>                  'fieldvals' => {
>                                   'Passwd' => '',
>                                   'COPT' => '',
>                                   'RQT' => '301'
>                                 },
>                  'fields' => [],
>                  'upload' => 0,
>                  'debug' => undef,
>                  'buttontypes' => {},
>                  'method' => 'POST',
>                  'buttons' => []
>                }, 'HTTP::Request::Form' );
>
> mainform:
> $VAR1 = bless( {
>                  'base' => undef,
>                  'link' => '/pqdweb',
>                  'selections' => {},
>                  'buttonvals' => {},
>                  'allfields' => [
>                                   'RQT',
>                                   'COPT',
>                                   'UserId',
>                                   'int'
>                                 ],
>                  'name' => 'mainform',
>                  'fieldtypes' => {
>                                    'int' => 'input/hidden',
>                                    'UserId' => 'input/hidden',
>                                    'COPT' => 'input/hidden',
>                                    'RQT' => 'input/hidden'
>                                  },
>                  'checkboxstate' => {},
>                  'fieldvals' => {
>                                   'int' => '0',
>                                   'UserId' => '',
>                                   'COPT' => '',
>                                   'RQT' => '301'
>                                 },
>                  'fields' => [],
>                  'upload' => 0,
>                  'debug' => undef,
>                  'buttontypes' => {},
>                  'method' => 'POST',
>                  'buttons' => []
>                }, 'HTTP::Request::Form' );
>
> Para solucionar esto he escrito una rutina que lo que hace es que si no
> encuentra un campo en el formulario, que si haya sido definido en la
> configuracin del PoA, lo crea para que el formulario tenga al final al
> menos todos los campos definidos en el PoA. Eso puede ayudar a procesar
> formularios que se ayuden del javascript para crear nuevos elementos al
> vuelo.
>
> Insertar en lnea 282
>        for my $f (keys %{$formProc->{settings}}) {
>          my $field = $g->look_down("name",$f);
>          if($field == undef) {
>            my $h = HTML::Element->new('input', 'name' => $f, 'type' =>
> 'hidden' );
>            $g->push_content($h);
>          }
>        }
>
> Con esto ya consigo enviar a Proquest el formulario con toda la informacin
> necesaria. An as sigo con problemas porque siempre me responde con un
> header 302 que me lleva a un bucle infinito.
>
Ya lo tengo, tena algn problema con las cookies, pero las he limpiado, he 
probado de nuevo y ya est. Como he dicho antes, creo que es una buena opcin 
la de aadir al formulario al menos todos los campos que estn definidos en el 
PoA para evitar algunos problemas cuando la clase HTTP::Request::Form no 
identifica correctamente los campos del formulario.

Un saludo a todos!!

> > Se geno,
> >
> > --
> > "Esta vez no fallaremos, Doctor Infierno"
> >
> > Dr Diego R. Lopez
> >
> > Red.es - RedIRIS
> > The Spanish NREN
> >
> > e-mail: [log in para visualizar]
> > jid:        [log in para visualizar]
> > Tel:    +34 955 056 621
> > Mobile: +34 669 898 094
> > -----------------------------------------

ATOM RSS1 RSS2