cowr_upgram/src/main/java/Main.kt

63 lines
2.4 KiB
Kotlin

import org.slf4j.LoggerFactory
import ro.pippo.controller.ControllerApplication
import ro.pippo.core.Pippo
import ro.pippo.core.RequestResponseFactory
import ro.pippo.session.SessionManager
import ro.pippo.session.SessionRequestResponseFactory
import ro.pippo.session.cookie.CookieSessionDataStorage
import route.*
object Main {
@JvmStatic
fun main(args: Array<String>) {
val pippo = Pippo(BasicApplication())
pippo.start()
}
}
class BasicApplication : ControllerApplication() {
private val log = LoggerFactory.getLogger(BasicApplication::class.java)
override fun onInit() {
getRouter().ignorePaths("/favicon.ico")
// send files from a local folder (try a request like 'src/main/java/ro/pippo/demo/basic/BasicApplication.java')
addFileResourceRoute("/src", "src")
// register a custom ExceptionHandler
errorHandler.setExceptionHandler(ForbiddenException::class.java) { e, routeContext ->
log.info("Called custom exception handler")
routeContext.setLocal<String>("message", e.message)
errorHandler.handle(403, routeContext)
}
// register a request logger
routePreDispatchListeners.add { request, _ ->
println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
println("requestPath = " + request.path)
println("requestUri = " + request.uri)
println("requestUrl = " + request.url)
println("contextPath = " + request.contextPath)
println("applicationPath = " + request.applicationPath)
println("applicationUri = " + request.applicationUri)
println("applicationUriWithQuery = " + request.applicationUriWithQuery)
println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
}
addControllers(CtrlUser::class.java)
addControllers(CrtlGroup::class.java)
addControllers(CtrlMenu::class.java)
addControllers(CtrlPerm::class.java)
addControllers(CtrlRole::class.java)
}
override fun createRequestResponseFactory(): RequestResponseFactory {
val sessionDataStorage = CookieSessionDataStorage(pippoSettings)
val sessionManager = SessionManager(sessionDataStorage)
return SessionRequestResponseFactory(this, sessionManager)
}
}
class ForbiddenException(message: String) : RuntimeException(message)