ADC
Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

Caso de uso: Limitar la cantidad de sesiones

En este caso de uso, el requisito es limitar el número de sesiones de back-end activas. En la implementación, cada inicio de sesión tiene “login” en la URL y cada cierre de sesión tiene “logout” en la URL. Al iniciar sesión correctamente, el back-end establece una cookie de identificación de sesión con un valor único de diez caracteres.

Para lograr este caso de uso, realice las siguientes operaciones:

  1. Cree una variable de asignación que pueda almacenar cada sesión activa. La clave del mapa es el sessionid. El tiempo de caducidad de la variable se establece en 600 segundos (10 minutos).</span>

    > add ns variable session_map -type map(text(10),ulong,100) -expires 600
  2. Cree las siguientes asignaciones para la variable de asignación:</span>

    • Cree una entrada para el ID de sesión y establezca ese valor en 1 (este valor no se utiliza).</span>

      > add ns assignment add_session -variable '$session_map[http.req.cookie.value("sessionid")]' -set 1
    • Desasignar la entrada de un ID de sesión, lo que disminuye implícitamente el recuento de valores de session_map.</span>

      > add ns assignment delete_session -variable '$session_map[http.req.cookie.value("sessionid")]' -clear
  3. Cree directivas de respuesta para lo siguiente:</span>

    • Para comprobar si existe una entrada de mapa para ese sessionid en la solicitud HTTP. La asignación add_session se ejecuta si la entrada del mapa no existe.</span>

      > add responder policy add_session_pol 'http.req.url.contains("example") || $session_map.valueExists(http.req.cookie.value("abc"))' add_session

      Nota: La función valueExists() de la directiva add_session_pol cuenta como referencia a la entrada de mapa de la sesión, por lo que cada solicitud restablece el tiempo de expiración de su sesión. Si no se reciben solicitudes para una sesión después de 10 minutos, se desasignará la entrada de la sesión.

    • Para comprobar cuándo se cierra la sesión. Se ejecuta la asignación delete_session.</span>

      add responder policy delete_session_pol "http.req.url.contains("Logout")" delete_session
    • Para comprobar si hay solicitudes de inicio de sesión y si el número de sesiones activas supera las 100. Si se cumplen estas condiciones, para limitar el número de sesiones, se redirige al usuario a una página que indica que el servidor está ocupado.</span>

      add responder action redirect_too_busy redirect "/too_busy.html" add responder policy check_login_pol "http.req.url.contains("example") && $session_map.valueCount > 100" redirect_too_busy
  4. Vincular las directivas de respuesta de forma global</span>

    bind responder global add_session_pol 30 next bind responder global delete_session_pol 10 bind responder global check_login_pol 20
La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.
Caso de uso: Limitar la cantidad de sesiones