mirror of
https://github.com/KeymonSoft/jRDC-Multi.git
synced 2026-04-17 12:56:23 +00:00
- Se corrigieron errores en "Manager". - Se cambiaron nombres de handlers. - Se corrigio un error en la ruta de "www/login.html".
177 lines
6.8 KiB
Plaintext
177 lines
6.8 KiB
Plaintext
AppType=StandardJava
|
|
Build1=Default,b4j.JRDCMulti
|
|
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=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=DBHandlerJSON
|
|
Module7=DoLoginHandler
|
|
Module8=GlobalParameters
|
|
Module9=HandlerB4X
|
|
NumberOfFiles=10
|
|
NumberOfLibraries=9
|
|
NumberOfModules=15
|
|
Version=10.3
|
|
@EndOfDesignText@
|
|
'Non-UI application (console / server application)
|
|
#Region Project Attributes
|
|
#CommandLineArgs:
|
|
#MergeLibraries: True
|
|
' VERSION 5.08.30
|
|
'###########################################################################################################
|
|
'###################### PULL #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
|
|
'###########################################################################################################
|
|
'###################### PUSH #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
|
|
'###########################################################################################################
|
|
'###################### PUSH TORTOISE GIT #########################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"../"&Args=/closeonend:2
|
|
'###########################################################################################################
|
|
#End Region
|
|
|
|
'change based on the jdbc jar file
|
|
'#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
|
|
Public const VERSION As Float = 2.23
|
|
Type DBCommand (Name As String, Parameters() As Object)
|
|
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
|
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
|
|
Connectors = srvr.CreateThreadSafeMap
|
|
commandsMap.Initialize
|
|
con.Initialize("DB1") 'Inicializamos el default de config.properties
|
|
Connectors.Put("DB1", con)
|
|
srvr.Port = con.serverPort
|
|
listaDeCP.Add("DB1")
|
|
cpFiles = File.ListFiles("./")
|
|
If cpFiles.Size > 0 Then
|
|
Log(cpFiles)
|
|
For i = 0 To cpFiles.Size - 1
|
|
If cpFiles.Get(i) = "config.DB2.properties" Then ' Si existe el archivo DB2, lo usamos.
|
|
Dim con As RDCConnector
|
|
con.Initialize("DB2")
|
|
Connectors.Put("DB2", con)
|
|
listaDeCP.Add("DB2")
|
|
End If
|
|
If cpFiles.Get(i) = "config.DB3.properties" Then ' Si existe el archivo DB3, lo usamos.
|
|
Dim con As RDCConnector
|
|
con.Initialize("DB3")
|
|
Connectors.Put("DB3", con)
|
|
listaDeCP.Add("DB3")
|
|
End If
|
|
If cpFiles.Get(i) = "config.DB4.properties" Then ' Si existe el archivo DB4, lo usamos.
|
|
con.Initialize("DB4")
|
|
Connectors.Put("DB4", con)
|
|
listaDeCP.Add("DB4")
|
|
End If
|
|
Next
|
|
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)
|
|
' --- 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("/*", "HandlerB4X", False)
|
|
|
|
srvr.Start
|
|
Log("===========================================================")
|
|
Log($"-=== jRDC is running on port: ${srvr.port} (version = $1.2{VERSION}) ===-"$)
|
|
Log("===========================================================")
|
|
StartMessageLoop
|
|
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 --- |