Adds file session handling.
This commit is contained in:
parent
07c8758182
commit
bef0d0e536
2 changed files with 28 additions and 2 deletions
|
@ -4,6 +4,11 @@ import io.javalin.Javalin
|
||||||
import io.javalin.http.staticfiles.Location
|
import io.javalin.http.staticfiles.Location
|
||||||
import net.h34t.filemure.FilemureApp
|
import net.h34t.filemure.FilemureApp
|
||||||
import net.h34t.filemure.repository.SqliteRepository
|
import net.h34t.filemure.repository.SqliteRepository
|
||||||
|
import org.eclipse.jetty.http.HttpCookie
|
||||||
|
import org.eclipse.jetty.server.session.DefaultSessionCache
|
||||||
|
import org.eclipse.jetty.server.session.FileSessionDataStore
|
||||||
|
import org.eclipse.jetty.server.session.SessionHandler
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
|
@ -18,15 +23,33 @@ fun main() {
|
||||||
staticFiles.hostedPath = "/"
|
staticFiles.hostedPath = "/"
|
||||||
staticFiles.directory = "./public"
|
staticFiles.directory = "./public"
|
||||||
staticFiles.location = Location.EXTERNAL
|
staticFiles.location = Location.EXTERNAL
|
||||||
// staticFiles.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config.requestLogger.http { ctx, ms ->
|
config.requestLogger.http { ctx, ms ->
|
||||||
// log things here
|
// log things here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.useVirtualThreads = true
|
||||||
|
|
||||||
|
config.jetty.modifyServletContextHandler {
|
||||||
|
it.sessionHandler = fileSessionHandler()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.also {
|
.also {
|
||||||
app.register(it)
|
app.register(it)
|
||||||
}
|
}
|
||||||
.start(7070)
|
.start(7070)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun fileSessionHandler() = SessionHandler().apply {
|
||||||
|
sessionCache = DefaultSessionCache(this).apply {
|
||||||
|
sessionDataStore = FileSessionDataStore().apply {
|
||||||
|
val baseDir = File(System.getProperty("java.io.tmpdir"))
|
||||||
|
this.storeDir = File(baseDir, "javalin-session").apply { mkdirs() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
maxInactiveInterval = 30 * 60
|
||||||
|
httpOnly = true
|
||||||
|
isSecureRequestOnly = true
|
||||||
|
sameSite = HttpCookie.SameSite.STRICT
|
||||||
|
}
|
|
@ -1,3 +1,6 @@
|
||||||
package net.h34t.filemure
|
package net.h34t.filemure
|
||||||
|
|
||||||
data class Session(val id: Long, val email: String)
|
import java.io.Serializable
|
||||||
|
|
||||||
|
|
||||||
|
data class Session(val id: Long, val email: String) : Serializable
|
Loading…
Reference in a new issue