Genera un token (URL) que ejecutado en una navegador permite el acceso a Axional de forma temporal.

1 webapp.token.login.getNewURL

El usuario Axional al que se da acceso debe cumplir la siguientes condiciones en la base de datos (BD) de configuración (wic_conf):

  1. Tener clave de acceso (wic_user).
  2. La clave de acceso debe tener Seguridad Alta (wic_user).
  3. Tener el indicador Forzar cambio de contraseña desactivado (wic_user).
  4. Debe tener el campo Logins fallidos a 0 (wic_user).
  5. No debe tener asignados roles de aplicación comprometidos. Por ejemplo, acceso a la tool DBStudio.
  6. No debe tener permiso para ejecutar servicios SOAP.
  7. Tener acceso a una sola BD.
  8. Tener asignado un Role funcional para la BD.
  9. Tener definido un Role de seguridad SQL (para la BD).
  10. Tener definido un Role de transacciones (para la BD).

El token generado se guarda en la tabla wic_user_token_login de la wic_conf.

<webapp.token.login.getNewURL
    user='user'
    dbms='dbms'
    code='code'
    token-group='token-group'
>
    <expires> !
        <date.timestamp /> !
    </expires>
    <args> ?
        <arg name='name'> *
            <string /> *
        </arg>
    </args>
</webapp.token.login.getNewURL>

Exceptions

required attribute 'user' not defined

No se ha especificado el código del usuario.

required attribute 'dbms' not defined

No se ha especificado el código de la BD.

required attribute 'code' not defined

No se ha especificado el código del objeto.

required attribute 'token-group' not defined

No se ha especificado el grupo de token.

Example

Calcula el valor hash registrándolo en la tabla de tokens (wic_conf:wic_user_token_login) y devuelve la URL de acceso al servidor Axional.

Copy
<xsql-script name='getTokenLoginURL_ex1'>
    <body>
        <println>
            <webapp.token.login.getNewURL user='demo' dbms='demo_sports' code='cdiarios' token-group='DEMO'>
                <expires><date.timestamp dd='5' MM='3' yy='2014' hh='16' mm='00' /></expires>
                <args>
                    <arg name='cond'>1=1</arg>
                    <arg name='mode'>htm</arg>
                </args>
            </webapp.token.login.getNewURL>
        </println>
    </body>
</xsql-script>

Output:

Copy
http://www.mydeister.com/servlet/jrep?code=cdiarios&user=demo&dbms=demo_sports&cond=1%3D1&mode=htm&ltoken=E90E40BC6B2A7AABCCC348A5339B2E77AA936C2D03CAA7BA4C3191FEAE1F3602F24DA04D89A21253A996B51924D529055A90D24FE77FD523D4222CDE0451D9DE

2 Ejemplos de uso de un token registrado

El valor del token para login registrado usando el tag "webapp.token.login.getNewURL" puede ser usado en una URL como parámetro de query o también en el header estándar "Authorization", debiendo especificarlo con el tipo "Bearer" de la siguiente forma:

Copy
Authorization: Bearer XXXXXXXXXXXXXX
Example

Ejemplo de ejecución de comando CURL (token en header "Authorization"). Observar que se devuelve header "set-cookie" con el valor de una nueva sessión autenticda.

Copy
$ curl -H 'Authorization: Bearer XXXXXXXXXXXXXX' -v 'https://www.mydeister.com/servlet/jrep?code=wic_trig_object&user=zzz&dbms=wic_admin&query=true'
...
> Authorization: Bearer XXXXXXXXXXXXXX
...
< HTTP/1.1 200 OK
< Date: Thu, 21 May 2020 05:59:23 GMT
< Set-Cookie: JSESSIONID=web1web~gybasdfcoasdfcmxz9asdfw1us;Path=/;Secure;HttpOnly
...
<!doctype html>
<HTML>
    <HEAD>
...
    </BODY>
</HTML>
Example

Ejemplo de ejecución de comando CURL (token como parámetro). Observar que se devuelve header "set-cookie" con el valor de una nueva sessión autenticda.

Copy
$ curl -v 'https://www.mydeister.com/servlet/jrep?code=wic_trig_object&user=zzz&dbms=wic_admin&query=true&ltoken=XXXXXXXXXXXXXX'
...
< HTTP/1.1 200 OK
< Date: Thu, 21 May 2020 06:01:14 GMT
< Set-Cookie: JSESSIONID=web1web~yjroasdfasdfasdffklv3rc2v;Path=/;Secure;HttpOnly
...
<!doctype html>
<HTML>
    <HEAD>
...
    </BODY>
</HTML>
Example

Ejemplo de llamada SOAP para acceder con token:

Copy
<xsql-script>
    <body>
        <println>
            <soap.call
                url='http://192.168.10.101/soap/servlet/rpcrouter'
                uri='urn:SOAPAPPServer'
                method='getPolicy'
                >
                <http-headers>
                  <header name='ltoken'>49D3F4850FC30142FA57B81AEE7A3BD3</header>
                </http-headers>
                <parameters>
                     <parameter name='id'><string>1</string></parameter>
                </parameters>
            </soap.call>
        </println>
    </body>
</xsql-script>