Área de Administración es el área de documentación para desarrolladores y administradores.
Requisitos del sistema para el funcionamiento del servidor
- Dominio
- Se requiere un dominio registrado para un servidor en producción, mientras que en un entorno de intranet basta con un nombre de host resoluble. En un equipo de desarrollo, localhost es suficiente.
- Jakarta EE Platform 10
- El servidor JavaComm se ejecuta en cualquier Jakarta EE Platform 10.
- Jakarta EE Web Profile 10
- El servidor JavaComm se ejecuta en cualquier plataforma Jakarta EE Web Profile 10, siempre que las extensiones EE 10 necesarias estén disponibles. Utilizamos Tomcat Tomcat 10.1.44 como servidor de referencia.
- MariaDB
- La base de datos SQL se encarga de la gestión de los datos globales y almacena el estado del sistema. Utilizamos MariaDB 10.5.29 como base de datos de referencia.
Dominio
La domina es gestionada por el proveedor de dominios o por el proveedor de hosting web. A la domina se le puede asignar una dirección IP a través de la interfaz de administración.
Alternativamente, una domina puede conectarse a Internet mediante un proveedor externo. Con FreeDNS, se puede asignar una dirección IP a una domina. Para ello, se deben ingresar los servidores de nombres de FreeDNS en el proveedor de dominios. A continuación, se realiza una sincronización DNS. Tras unas horas, la domina es accesible a nivel mundial.";
Integración del servidor (ajuste del código fuente)
Para la integración del servidor es necesario realizar un ajuste en el código fuente. En este proceso se definen los dominios a través de los cuales el servidor es accesible; las actualizaciones se obtienen mediante el dominio de descarga. El ajuste se realiza en el archivo net.javacomm.share.Constants.java y afecta a tres variables:
En entornos productivos, estos valores deben adaptarse al dominio host y al dominio de descarga correspondientes. El dominio host y el dominio de descarga pueden ser idénticos. La separación es opcional y sirve para dar soporte a diferentes configuraciones de alojamiento y red.
Tomcat
Tomcat es un contenedor de servlets y utiliza solo las Jakarta EE 10 APIs que son necesarias para la aplicación. El servidor se mantiene ligero y eficiente. Las APIs se extraen en el directorio de Tomcat.
${CATALINA_HOME}/lib
El controlador de la base de datos también debe estar ubicado en este directorio. Después de un reinicio de Tomcat todas las extensiones están activas.
Se requiere un certificado de validación de dominio para cifrar los datos. Varias autoridades de certificación emiten certificados DV. Recomendamos Let’s Encrypt. Puede obtener un certificado directamente de Let's Encrypt o a través de su proveedor de hosting. Después, se utilizan los programas openssl y keytool para importar el certificado en el almacén de certificados de Tomcat.
openssl pkcs12 -export -in merge.crt -inkey private.key -out letsencrypt_2025_11_03.p12
keytool -changealias -alias 1 -destalias asterix -keystore letsencrypt_2025_11_03.p12 -storepass obelix
- merge.crt es un archivo de texto creado por usted que contiene su Public Key y la cadena de certificados de Let’s Encrypt u otra Autoridad Certificadora (CA). La cadena de certificados normalmente se proporciona en un archivo de texto llamado bundle. En merge.crt, el orden es: primero el Public Key y luego la cadena de certificados.
- private.key es un archivo de texto que contiene el Private Key de su certificado.
- letsencrypt_2025_11_03.p12 es un almacén de certificados que se crea nuevo con exactamente un certificado. Cuando el certificado expira, el almacén se descarta y se crea uno nuevo con el certificado actualizado.
Después de importar con openssl, el certificado recibió un alias numérico. keytool lo cambió por un alias descriptivo. El alias se cambió de from 1 a asterix, y letsencrypt_2025_11_03.p12 recibió la contraseña obelix. A continuación, letsencrypt_2025_11_03.p12 se copia en la siguiente ubicación:
${CATALINA_HOME}/conf/letsencrypt_2025_11_03.p12
En el paso final, letsencrypt_2025_11_03.p12 debe especificarse en
/conf/server.xml ,
y el puerto 443 debe configurarse para HTTPS. Tomcat podrá iniciar la aplicación del servidor y la encriptación estará activa.
Logging
El registro (logging) puede convertirse en un problema real si se captura demasiada información. Los servicios web se basan en HTTP, y todas las solicitudes a un servidor se registran automáticamente. Tomcat no es una excepción.
El registro excesivo o las solicitudes que contienen un ID de usuario pueden ser suprimidos mediante un filtro de registro. Para este propósito se desarrolló la clase net.javacomm.server.LogFilter. Esta clase define un patrón de URL que impide el registro de ciertos recursos. El patrón debe ajustarse según los requisitos específicos. Por defecto, todas las URL para el uso compartido de pantalla están suprimidas para evitar archivos de registro excesivamente grandes.
Tomcat registra la clase net.javacomm.server.LogFilter a través del web.xml de javacommserver.war. Si LogFilter detecta un patrón de <filter-mapping>, notifica a la configuración de AccessLogValve en server.xml, de modo que el registro se suprima en consecuencia.
MariaDB
Las tablas del servidor para funciones administrativas se gestionan mediante scripts SQL y la GUI de administración. La GUI de administración forma parte del cliente JavaComm y solo se habilita para los usuarios marcados como administradores del programa en la tabla TB_USER. No se pueden crear administradores del programa a través de la GUI; la creación y eliminación se realiza exclusivamente por un administrador de base de datos mediante SQL o una herramienta de gestión de bases de datos. DBeaver es muy adecuado para este propósito. DBeaver está disponible como aplicación de escritorio o como complemento de Eclipse.
Para configurar la base de datos y las tablas, existe un script general que se ejecuta mediante el cliente de MariaDB en modo batch.
Antes de ejecutar el script maestro runolymp.cmd, se deben revisar las entradas en los scripts individuales y adaptarlas según los requisitos específicos. El script maestro es idempotente. Los usuarios que no deseen utilizar MariaDB deben tener en cuenta tres puntos:
- Un controlador JDBC adecuado debe copiarse en el directorio de Tomcat:
/lib - Algunos tipos de datos del archivo olymp_tables_10_11_4.sql deben reemplazarse por equivalentes en la base de datos de destino."
- Algunos comandos SQL pueden necesitar ajustes. Los comandos SQL están referenciados por una clave única en el archivo sqlmapper.xml , que se encuentra en el archivo fuente en:
javacomm/javacommserver/src/main/resources/net/javacomm/database/sqlmapper
Consejo:
Todos los comandos de la base de datos se registran con su clave en el archivo:
${CATALINA_HOME}/logs/javacommserver/database.log
antes de su ejecución. Si un comando no pudo ejecutarse, el archivo de registro contiene la entrada correspondiente con la causa del error.
Configuración de base de datos y correo electrónico en Tomcat
La configuración de las credenciales de acceso para la base de datos y el correo electrónico se realiza a través del archivo context.xml. Este archivo no se distribuye y solo es accesible localmente en el servidor. Tomcat necesita las credenciales en texto plano para establecer conexiones con la base de datos y el servidor de correo. Cifrar el archivo no proporcionaría una protección adicional, ya que la clave de descifrado también tendría que estar disponible localmente.
Las bases de datos son completamente accesibles para los administradores y suelen replicarse y respaldarse. Por este motivo, almacenar las credenciales en context.xml es técnicamente adecuado y cumple con los estándares habituales de la industria para aplicaciones Tomcat.
El archivo se encuentra en el archivo del código fuente en:
javacomm/javacommserver/src/main/webapp/META-INF/context.xml
Los parámetros más importantes, explicados brevemente:
Parámetros de la base de datos:
- username: Desde la perspectiva de MariaDB, Tomcat es un usuario normal llamado hades.
- password: La contraseña para el usuario de MariaDB es persephone.
- driverClassName: Esta clase establece la conexión entre Tomcat y MariaDB.
- url: Esta URL indica a Tomcat en qué host y puerto MariaDB acepta conexiones.
Parámetros de correo electrónico:
- adminmail: Los administradores reciben notificaciones sobre solicitudes de registro de usuarios a través de este buzón.
- mail.smtp.password: Tomcat utiliza esta contraseña para autenticarse en el servidor de correo.
- mail.smtp.user: Tomcat inicia sesión con este nombre de usuario.
- mail.smtp.host: El servidor de correo está disponible en esta dirección.
- mail.smtp.port: El servidor de correo acepta solicitudes en este puerto.
Interfaz de Administración (AdminUI)
Los usuarios con derechos de administrador ven el menú Administrator en la parte superior derecha del cliente. Para conceder estos derechos a un usuario, un administrador de base de datos debe establecer la columna ISADMIN en 1 para el usuario correspondiente en la tabla TB_USER.
El administrador del programa define el proceso de inicio de sesión y establece filtros para los alias y las salas. Además, determina el período de gracia para que las salas de pausa se conviertan en un foro. El administrador también puede iniciar el proceso de actualización de todos los clientes indicando los números de versión del programa que estén obsoletos.
-
Dominio
Un dominio puede ser restringido o público.- Dominio restringido: utilizado para fines operativos u organizacionales. El acceso se concede únicamente después de una verificación de identidad por un administrador del programa.
- Dominio público: utilizado para fines de redes sociales o comunidades. Los usuarios pueden crear una cuenta sin verificación previa de identidad.
-
Servidor de correo
Se configuran las credenciales del buzón de correo del administrador. -
Foro
Se establece el umbral en minutos para las salas de descanso antes de que se conviertan en un foro. -
Módulo de chat
Se define la duración de retención de los mensajes en horas. Puede variar entre 24 y 720 horas. -
Solicitudes de registro de usuario
Aquí se gestionan las aperturas de cuentas para un dominio restringido. -
Filtros de chat
Los filtros de chat bloquean ciertas secuencias de letras en los nombres de las salas. Los filtros se aplican retroactivamente a los nombres de chat existentes. -
Versiones del programa
Ingrese aquí las versiones del programa obsoletas. Los clientes con estas versiones iniciarán el proceso de actualización. -
Alias
La lista de alias contiene nombres prohibidos. Los nuevos nombres prohibidos se aplican a alias existentes. Un alias afectado se convierte automáticamente en una cadena aleatoria en el plazo de una hora. -
Usuarios
El administrador de programa puede consultar algunos datos de usuario y, si es necesario, eliminar lógicamente una cuenta de usuario.
Código fuente
| mvn | |
| mvn -Pwinrunner | |
| mvn -Plinrunner | |
| mvn -Pwinportable | |
| mvn -Plinportable | |
| mvn -Prelease | |
| mvn |