El servlet HotSpot reconoce 5 diferentes tipos de requerimientos: 1. requerimiento de un host remoto
o si un usuario está conectado y la publicidad se debe visualizar, radvert.html se visualiza. Esta página permite redirigir a la página de publicidad programada
o si el usuario ha iniciado sesión y la publicidad no está prevista para este usuario, se sirve la página solicitada.
o si el usuario no está conectado, y el host de destino no está permitido por el Walled Garden, rlogin.html es visualizado; si rlogin.html no es encontrado, es usado redirect.html para redireccionar a la página de login. 2. Requerimiento para "/" en HotSpot host
o Si un usuario está conectado, rstatus.html es visualizado;
o Si no se encuentra rstatus.html, redirect.html es usado para redireccionar al estado de la página.
o Si un usuario no está conectado, rlogin.html es visualizado; si rlogin.html no es encontrado, redirect.html es usado para redireccionar la página de login
3. Requerimiento para la página de "/login"
o Si un usuario se ha conectado correctamente (o todavía está conectado), alogin.html es visualizado; si alogin.html no es encontrado, redirect.html es usado para redireccionar el requerimiento original de la página o el estado de la página (en caso, de que la pagina original no fuera dada)
o Si el usuario no está conectado (nombre de usuario no fue proporcionado, ningún mensaje de error aparecerá,), login.html es mostrado.
o Si procedimiento de login ha fallado (un mensaje de error es proporcionado), flogin.html es visualizado; si flogin.html no es encontrado, login.html es usado.
o En caso de errores fatales, error.html es mostrado. 4. Requerimiento para la página de "/status"
o Si el usuario está conectado, status.html es visualizado.
o Si el usuario no está conectado, fstatus.html es visualizado; si fstatus.html no es encontrado, redirect.html es usado para redireccionar a la página de login.
5. Requerimiento para la página de '/logout'
o Si el usuario está conectado, logout.html es visualizado.
o Si el usuario no está conectado, flogout.html es visualizado; si flogout.html no es encontrado, redirect.html es usado para redireccionar a la página de login.
Nota: si no es posible satisfacer una solicitud utilizando las páginas almacenadas en el servidor FTP del router, Error 404 es visualizado.
Hay muchas posibilidades para personalizar la página de autenticación de HotSpot:
• La página es fácilmente modificable. Están almacenadas se almacenan en el servidor FTP del router en el directorio que uno escoja para el perfil del servidor HotSpot.
• Cambiando las variables, el cual el cliente envía al servlet HotSpot, es posible reducir el número de palabra clave para una (nombre de usuario o contraseña; por ejemplo, direcciona MAC del cliente podría ser usada como otro valor) o siempre a cero (acuerdo de la licencia, los valores generales predefinidos o la dirección MAC del cliente puede ser usada como nombre de usuario y contraseña).
• El registro puede ocurrir en un servidor diferente (por ejemplo, en un servidor que pueda cobrar tarjetas de crédito). La dirección MAC del cliente puede ser pasadas a el servidor, esa información necesita ser escribida manualmente. Después del registro, el servidor debería cambiar la base de datos del servidor RADIUS habilitando al cliente para cargar cierta cantidad de tiempo.
Para insertar una variable en cierto lugar en el archive HTML, la $(var_name) sintaxis es usada, donde el the "var_name" es el nombre de la variable (sin comillas). Esta construcción puede ser usada en cualquier archivo de acceso de HotSpot HTML como as '/', '/login', '/status' o '/logout', como cualquier otro texto o HTML (.txt, .htm o .html) archive almacenado en servidor HotSpot (con la excepción de contadores de tráfico, el cual está disponible solo en el estado de la página). Por ejemplo, para mostrar un link en la página de login, siguiendo la construcción puede ser usada:
<a href="$(link-login)">login</a>
Variables
Todas las páginas del Servlet HTML usan variables para mostrar al usuario valores específicos. Nombres de variables aparecen solo en el origen de HTML de la página del servlet – ellos son automáticamente reemplazados con los valores respectivos por el servlet HotSpot. Para las demás variables es un Ejemplo de los posibles valores incluidos en paréntesis. Todas las variables descritas son válidas en todas las páginas de servlet, pero algunas de ellas solo están vacías en el tiempo que son accedidas (por ejemplo, sin tiempo de actividad antes de que un usuario se ha conectado).
A c a d e m y X p e r t s 20 • Variables comunes del servidor:
o hostname – nombre de DNS o dirección IP (si el nombre de DNS no es dado) del servidor HotSpot ("hotspot.example.net")
o identity – nombre de identidad de RouterOS ("MikroTik")
o login-by – método de autenticación usado por el usuario.
o plain-passwd - una representación de "yes/no" del método de login de HTTP-PAP.
o server-address – dirección del servidor HotSpot ("10.5.50.1:80")
o ssl-login – representación "yes/no" del método HTTPS fue usado para acceder a la página del servidor ("no")
o server-name – nombre del servidor HotSpot (ajustado en el menú /ip hotspot, como el name)
• Links:
o link-login – link hacia la página de login incluyendo el requerimiento de la URL original. ("http://10.5.50.1/login?dst=http://www.example.com/")
o link-login-only - link a la página de login, no incluye el requerimiento de la URL original ("http://10.5.50.1/login")
o link-logout - link a la página de logout ("http://10.5.50.1/logout")
o link-status – link a la página de estado ("http://10.5.50.1/status")
o link-orig – requerimiento de la URL original ("http://www.example.com/")
• Información general del cliente
o domain – nombre de dominio del usuario ("example.com")
o interface-name – nombre de la interfaz física de HotSpot interface (en el caso de interfaces bridged, estas regresaran al nombre del puerto bridge actual)
o ip – dirección IP del cliente ("10.5.50.2")
o logged-in - "yes" if the user is logged in, otherwise - "no" ("yes")
o mac – dirección MAC del usuario ("01:23:45:67:89:AB")
o trial – representación "yes/no" del usuario que ha accedido al tiempo de trial. Si el tiempo de trial de los usuarios ha expirado el valor es "no".
o username - the name of the user ("John")
• Información de estado del usuario:
o idle-timeout – tiempo terminado de idle ("20m" o "" si ninguno)
o idle-timeout-secs – tiempo terminado en segundos de idle ("88" o "0" si no está el tiempo de espera)
o limit-bytes-in – límites de byte por enviar ("1000000" o "---" si no tiene límite)
o limit-bytes-out – límites de byte para recibir ("1000000" o "---" si no tiene límite)
o refresh-timeout – tiempo de espera de refresh de la página de estado ("1m30s" o "" sin ninguno)
o refresh-timeout-secs - tiempo de espera de refresh de la página de estado en segundos ("90s" o "0" sin ninguno)
o session-timeout – tiempo de sesión que el usuario dejo ("5h" o "" sin ninguno)
o session-timeout-secs - tiempo de sesión que el usuario dejo, en segundos ("3475" o "0" si no está el tiempo de espera)
o session-time-left - tiempo de sesión que el usuario dejo ("5h" o "" sin nada)
o session-time-left-secs - tiempo de sesión que el usuario dejo, en segundos ("3475" o "0" si no está el tiempo de espera)
o uptime – tiempo de actividad de las sesiones ("10h2m33s")
o uptime-secs - tiempo de actividad de las sesiones en segundos ("125")
• Contadores de tráfico, el cual solo están disponibles en el estado de la página:
o bytes-in – números de bytes que el usuario recibió ("15423")
o bytes-in-nice - formato de fácil uso del número de bytes recibidos por parte del usuario ("15423")
o bytes-out – Números de bytes enviados al usuario ("11352")
o bytes-out-nice - formato de fácil uso del número de bytes enviados por parte del usuario ("11352")
o packets-in – números de paquetes recibidos del usuario ("251")
o packets-out – números de paquetes enviados al usuario ("211")
o remain-bytes-in - se alcanzará bytes hasta el límite de bytes entrantes que restan ("337465" o "---" si no hay límite)
o remain-bytes-out - se alcanzará bytes hasta el límite de bytes de salida que restan ("124455" o "---" si no hay límite)
• Diversas variables
o session-id – valor de parámetro de 'session-id' en el último requerimiento.
o var – valor del parámetro 'var' en el último requerimiento.
o error – mensaje de error, si algo ha fallado ("nombre de usuario invalido o contraseña")
o error-orig – mensaje de error original (sin traducciones recuperadas de errors.txt), si algo ha fallado ("nombre de usuario invalido o contraseña"")
o chap-id – valor del chap ID ("\371")
o chap-challenge – valor del chap challenge
("\357\015\330\013\021\234\145\245\303\253\142\246\133\175\375\316")
o popup - ya sea para que aparezca la casilla de verificación ("verdadero" o "falso")
A c a d e m y X p e r t s 21 • RADIUS-related variables
o radius<id> - mostrar el atributo identificado con <id> forma de cadena de texto (en caso de autenticación RADIUS fuera usada; de otra manera "")
o radius<id>u - mostrar el atributo identificado <id> en forma de entero sin signo (en caso de autenticación RADIUS fuera usada; de otra manera "0")
o radius<id>-<vnd-id> - muestra el atributo identificado con <id> and vendor ID <vnd-id> en la cadena de texto (en caso de autenticación RADIUS fuera usada; de otra manera "")
o radius<id>-<vnd-id>u - muestra el atributo identificado con <id> and vendor ID <vnd-id> en forma de entero sin signo (en caso de autenticación RADIUS fuera usada; de otra manera "0")