- VERSION 5.09.01

- Se corrigieron errores en "Manager".
- Se cambiaron nombres de handlers.
- Se corrigio un error en la ruta de "www/login.html".
This commit is contained in:
2025-09-01 20:37:37 -06:00
parent 4083696bbe
commit 2bf75cadc0
20 changed files with 2217 additions and 204 deletions

View File

@@ -1,30 +1,53 @@
AppType=StandardJava
Build1=Default,b4j.JRDCMulti
File1=config.properties
File1=config.DB2.properties
File10=stop.bat
File2=config.DB3.properties
File3=config.DB4.properties
File4=config.properties
File5=login.html
File6=reiniciaProcesoBow.bat
File7=reiniciaProcesoPM2.bat
File8=start.bat
File9=start2.bat
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup2=Default Group
FileGroup3=Default Group
FileGroup4=Default Group
FileGroup5=Default Group
FileGroup6=Default Group
FileGroup7=Default Group
FileGroup8=Default Group
FileGroup9=Default Group
Group=Default Group
Library1=javaobject
Library2=jcore
Library3=jrandomaccessfile
Library4=jserver
Library5=jshell
Library6=json
Library7=jsql
Library8=byteconverter
Module1=DB1Handler
Module10=RDCConnector
Module11=TestHandler
Module2=DB1JsonHandler
Library1=byteconverter
Library2=javaobject
Library3=jcore
Library4=jrandomaccessfile
Library5=jserver
Library6=jshell
Library7=json
Library8=jsql
Library9=bcrypt
Module1=B4AHandler
Module10=LoginHandler
Module11=LogoutHandler
Module12=Manager
Module13=ping
Module14=RDCConnector
Module15=TestHandler
Module2=ChangePassHandler
Module3=DB2Handler
Module4=DB3Handler
Module5=DB4Handler
Module6=DBHandlerGenerico
Module7=GlobalParameters
Module8=Manager
Module9=ping
NumberOfFiles=1
NumberOfLibraries=8
NumberOfModules=11
Module6=DBHandlerJSON
Module7=DoLoginHandler
Module8=GlobalParameters
Module9=HandlerB4X
NumberOfFiles=10
NumberOfLibraries=9
NumberOfModules=15
Version=10.3
@EndOfDesignText@
'Non-UI application (console / server application)
@@ -48,6 +71,8 @@ Version=10.3
'#AdditionalJar: mysql-connector-java-5.1.27-bin
'#AdditionalJar: postgresql-42.7.0
#AdditionalJar: ojdbc11
' Librería para manejar la base de datos SQLite
#AdditionalJar: sqlite-jdbc-3.7.2
Sub Process_Globals
Public srvr As Server
@@ -57,9 +82,15 @@ Sub Process_Globals
Dim listaDeCP As List
Dim cpFiles As List
Public Connectors, commandsMap As Map
Public SQL1 As SQL ' Objeto SQL para la base de datos de usuarios
Private bc As BCrypt
End Sub
Sub AppStart (Args() As String)
' --- INICIO DE CAMBIOS ---
' Inicializamos la base de datos. Se creará si no existe.
InitializeSQLiteDatabase
' --- FIN DE CAMBIOS ---
listaDeCP.Initialize
srvr.Initialize("")
Dim con As RDCConnector
@@ -94,24 +125,53 @@ Sub AppStart (Args() As String)
End If
srvr.AddHandler("/ping", "ping", False) ' Agrega un manejador a la ruta "/test", asignando las solicitudes a la clase TestHandler, el último parámetro indica si el manejador debe ejecutar en un nuevo hilo (False en este caso)
srvr.AddHandler("/test", "TestHandler", False) ' Agrega un manejador a la ruta "/test", asignando las solicitudes a la clase TestHandler, el último parámetro indica si el manejador debe ejecutar en un nuevo hilo (False en este caso)
' --- INICIO DE CAMBIOS ---
' 1. Rutas para el sistema de Login
srvr.AddHandler("/login", "LoginHandler", False) ' Sirve la página de login
srvr.AddHandler("/dologin", "DoLoginHandler", False) ' Procesa el intento de login
srvr.AddHandler("/logout", "LogoutHandler", False) ' Cierra la sesión
srvr.AddHandler("/changepass", "ChangePassHandler", False)
' 2. El handler del manager se queda igual, pero ahora estará protegido
srvr.AddHandler("/manager", "Manager", False)
' srvr.AddHandler("/db1", "DB1Handler", False)
' srvr.AddHandler("/DB1", "DB1Handler", False)
' srvr.AddHandler("/db2", "DB2Handler", False)
' srvr.AddHandler("/DB2", "DB2Handler", False)
' srvr.AddHandler("/db3", "DB3Handler", False)
' srvr.AddHandler("/DB3", "DB3Handler", False)
' srvr.AddHandler("/db4", "DB4Handler", False)
' srvr.AddHandler("/DB4", "DB4Handler", False)
srvr.AddHandler("/DBJ", "DB1JsonHandler", False)
srvr.AddHandler("/dbrquery", "DB1JsonHandler", False)
' --- FIN DE CAMBIOS ---
srvr.AddHandler("/DBJ", "DBHandlerJSON", False)
srvr.AddHandler("/dbrquery", "DBHandlerJSON", False)
' srvr.AddHandler("/*", "DB1Handler", False) ' Si no se especifica una base de datos, entonces asignamos la solicitud a la DB1.
srvr.AddHandler("/*", "DBHandlerGenerico", False)
srvr.AddHandler("/*", "HandlerB4X", False)
srvr.Start
Log("===========================================================")
Log($"-=== jRDC is running on port: ${srvr.port} (version = $1.2{VERSION}) ===-"$)
Log("===========================================================")
StartMessageLoop
End Sub
End Sub
' Nueva subrutina para crear y configurar la base de datos de usuarios
Sub InitializeSQLiteDatabase
Dim dbFileName As String = "users.db"
' Si la base de datos no existe en la carpeta del .jar, la creamos
If File.Exists(File.DirApp, dbFileName) = False Then
Log("Creando nueva base de datos de usuarios: " & dbFileName)
' Inicializamos la conexión
SQL1.InitializeSQLite(File.DirApp, dbFileName, True)
' Creamos la tabla de usuarios
Dim createUserTable As String = "CREATE TABLE users (username TEXT PRIMARY KEY, password_hash TEXT NOT NULL)"
SQL1.ExecNonQuery(createUserTable)
' Creamos un usuario por defecto para el primer inicio
Dim defaultUser As String = "admin"
Dim defaultPass As String = "12345"
Dim hashedPass As String = bc.hashpw(defaultPass, bc.gensalt) ' bc.HashPassword(defaultPass)
SQL1.ExecNonQuery2("INSERT INTO users (username, password_hash) VALUES (?, ?)", Array As Object(defaultUser, hashedPass))
Log($"Usuario por defecto creado -> user: ${defaultUser}, pass: ${defaultPass}"$)
Else
' Si ya existe, solo la abrimos
SQL1.InitializeSQLite(File.DirApp, dbFileName, True)
Log("Base de datos de usuarios cargada.")
End If
End Sub
' --- FIN DE CAMBIOS ---