Compare commits

...

6 Commits

Author SHA1 Message Date
96afe62837 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	src/main/kotlin/eu/maiora/plugins/Routing.kt
2025-03-24 11:48:47 +01:00
8a934dca5b modifica path autenticazione
pulizia codice
2025-03-20 13:00:16 +01:00
23733caca9 modifica nome folder properties
usato nome generico backend_api
2025-03-19 09:17:31 +01:00
b49577804e porta server su file esterno 2025-03-18 15:48:08 +01:00
8242c78b35 file config esterno
sul file di configurazione esterno vengono mappate le proprietà legate alla connessione al database
2025-03-05 11:57:27 +01:00
74570dc330 configurazione build
task buildFatJar Ktor
aggiunta file per il logging dell'applicazione (file logFile.log creato nella stessa folder di esecuzione dell'applicazione)
2025-03-05 09:43:57 +01:00
7 changed files with 45 additions and 28 deletions

1
.gitignore vendored
View File

@ -41,3 +41,4 @@ bin/
### Mac OS ### ### Mac OS ###
.DS_Store .DS_Store
.idea/.name .idea/.name
*.log

View File

@ -9,6 +9,10 @@ plugins {
kotlin("plugin.serialization") version "1.9.23" // Aggiungi il plugin di Serialization kotlin("plugin.serialization") version "1.9.23" // Aggiungi il plugin di Serialization
} }
application {
mainClass.set("eu.maiora.ApplicationKt")
}
group = "org.maiora" group = "org.maiora"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"

View File

@ -9,21 +9,26 @@ import io.ktor.server.engine.*
import io.ktor.server.netty.* import io.ktor.server.netty.*
import io.ktor.server.plugins.callloging.* import io.ktor.server.plugins.callloging.*
import io.ktor.server.plugins.cors.routing.* import io.ktor.server.plugins.cors.routing.*
import java.io.FileInputStream
import java.util.*
fun main() { fun main() {
embeddedServer(Netty, port = 8098, host = "0.0.0.0", module = Application::module) val properties = loadConfig()
.start(wait = true) val port = properties.getProperty("server.port").toInt()
embeddedServer(Netty, port = port, host = "0.0.0.0") {
module(properties)
}.start(wait = true)
} }
fun Application.module() { fun Application.module(configFile: Properties) {
val config = ApplicationConfig("application.conf") val config = ApplicationConfig("application.conf")
val dbUrl = config.property("ktor.database.url").getString() val dbUrl = configFile.getProperty("ktor.database.url")
val username = config.property("ktor.database.username").getString() val username = configFile.getProperty("ktor.database.username")
val password = config.property("ktor.database.password").getString() val password = configFile.getProperty("ktor.database.password")
val secret = config.property("ktor.jwt.secret").getString() val secret = config.property("ktor.jwt.secret").getString()
configureDatabases(dbUrl, username, password) configureDatabases(dbUrl, username, password)
configureSecurity(secret) configureSecurity(secret)
configureRouting(dbUrl, username, password) configureRouting()
configureSerialization() configureSerialization()
install(CallLogging) install(CallLogging)
@ -39,3 +44,10 @@ fun Application.module() {
allowMethod(HttpMethod.Delete) allowMethod(HttpMethod.Delete)
} }
} }
fun loadConfig(): Properties {
val properties = Properties()
val inputStream = FileInputStream("/home/backend_api/config.properties")
properties.load(inputStream)
return properties
}

View File

@ -1,9 +1,5 @@
package eu.maiora.plugins package eu.maiora.plugins
//import eu.maiora.model.LogScriptRepositoryImpl
//import eu.maiora.routes.analizzaURLRoute
//import eu.maiora.routes.eseguiScriptSQLRoute
//import eu.maiora.routes.logScriptRouting
import eu.maiora.model.AccountsRepositoryImpl import eu.maiora.model.AccountsRepositoryImpl
import eu.maiora.model.MovimentiRepositoryImpl import eu.maiora.model.MovimentiRepositoryImpl
import eu.maiora.model.ParametriRepositoryImpl import eu.maiora.model.ParametriRepositoryImpl
@ -15,8 +11,7 @@ import io.ktor.server.application.*
import io.ktor.server.response.* import io.ktor.server.response.*
import io.ktor.server.routing.* import io.ktor.server.routing.*
//fun Application.configureRouting(dbUrl : String, username : String, password : String, repository : LogScriptRepositoryImpl ) { fun Application.configureRouting() {
fun Application.configureRouting(dbUrl : String, username : String, password : String) {
routing { routing {
get("/") { get("/") {
call.respondText("Hello World!") call.respondText("Hello World!")

View File

@ -16,7 +16,7 @@ import java.util.*
fun Route.auth(accountsRepository: AccountsRepositoryImpl) { fun Route.auth(accountsRepository: AccountsRepositoryImpl) {
route("/auth") { route("/api/auth") {
post() { post() {
// Riceve il body della richiesta e lo deserializza in ReceivedResponse // Riceve il body della richiesta e lo deserializza in ReceivedResponse
val receivedResponse = try { val receivedResponse = try {

View File

@ -1,18 +1,4 @@
ktor { ktor {
database {
; url = "jdbc:postgresql://192.168.20.49:5432/caritas"
; username = "caritas"
; password = "caritas"
; driver = "org.postgresql.Driver"
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
url = "jdbc:sqlserver://192.168.20.45;databaseName=EP_FAER;integratedSecurity=false;encrypt=true;trustServerCertificate=true;"
username = "SA"
password = "I5fz9l1a"
;driver = "oracle.jdbc.OracleDriver"
;url = "jdbc:oracle:thin:@//192.168.20.101:1521/SIR"
;username = "EP_DONORIONE"
;password = "ep_donorione"
}
jwt { jwt {
# secret per JWT generato partendo dalla stringa '?Backend_API*06022025!' codificato in Base64 # secret per JWT generato partendo dalla stringa '?Backend_API*06022025!' codificato in Base64
secret = "P0JhY2tlbmRfQVBJKjA2MDIyMDI1IQ==" secret = "P0JhY2tlbmRfQVBJKjA2MDIyMDI1IQ=="

View File

@ -0,0 +1,19 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>./logFile.log</file>
<append>true</append>
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="trace">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
<logger name="io.netty" level="INFO"/>
</configuration>