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 net.h34t.filemure.FilemureApp
|
||||
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() {
|
||||
|
@ -18,15 +23,33 @@ fun main() {
|
|||
staticFiles.hostedPath = "/"
|
||||
staticFiles.directory = "./public"
|
||||
staticFiles.location = Location.EXTERNAL
|
||||
// staticFiles.
|
||||
}
|
||||
|
||||
config.requestLogger.http { ctx, ms ->
|
||||
// log things here
|
||||
}
|
||||
|
||||
config.useVirtualThreads = true
|
||||
|
||||
config.jetty.modifyServletContextHandler {
|
||||
it.sessionHandler = fileSessionHandler()
|
||||
}
|
||||
}
|
||||
.also {
|
||||
app.register(it)
|
||||
}
|
||||
.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
|
||||
|
||||
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