111 lines
4.0 KiB
Kotlin
111 lines
4.0 KiB
Kotlin
import com.jfinal.plugin.activerecord.ActiveRecordPlugin
|
|
import com.jfinal.plugin.druid.DruidPlugin
|
|
import model.JFinalModelMenu
|
|
import model.JFinalModelUser
|
|
import model.JSONResponse
|
|
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.*
|
|
import service.Service
|
|
import util.md5
|
|
|
|
|
|
object Main {
|
|
@JvmStatic
|
|
fun main(args: Array<String>) {
|
|
// System.setProperty("user.timezone","Asia/Shanghai");
|
|
val pippo = Pippo(BasicApplication())
|
|
pippo.start()
|
|
|
|
}
|
|
}
|
|
|
|
class BasicApplication : ControllerApplication() {
|
|
private val log = LoggerFactory.getLogger(BasicApplication::class.java)
|
|
// private val druidDataSource: DruidDataSource = DruidDataSource()
|
|
|
|
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("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
|
|
}
|
|
|
|
ANY("/.*") { routeContext ->
|
|
if (routeContext.requestUri.contains("user/auth")) {
|
|
routeContext.next()
|
|
return@ANY
|
|
} else {
|
|
val token = routeContext.getSession<String?>("token")
|
|
val name = routeContext.getSession<String?>("name")
|
|
if (token != null && name != null) {
|
|
val user = Service().getUserByName(name)
|
|
if (user != null) {
|
|
if (token == md5(user.name + ":" + user.passwd)) {
|
|
routeContext.next()
|
|
return@ANY
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// routeContext.status(403)
|
|
routeContext.json().send(JSONResponse(410,"",null))
|
|
}.runAsFinally()
|
|
|
|
addControllers(CtrlUser::class.java)
|
|
addControllers(CrtlGroup::class.java)
|
|
addControllers(CtrlMenu::class.java)
|
|
addControllers(CtrlPerm::class.java)
|
|
addControllers(CtrlRole::class.java)
|
|
|
|
|
|
|
|
val dp = DruidPlugin(
|
|
"jdbc:mysql://rm-wz9n28sq10rz5b0u2o.mysql.rds.aliyuncs.com:3306/sh-upgram?serverTimezone=Asia/Shanghai",
|
|
"shzhyjxy",
|
|
"Admin111")
|
|
val arp = ActiveRecordPlugin(dp)
|
|
arp.addMapping("menu", JFinalModelMenu::class.java)
|
|
arp.addMapping("user", JFinalModelUser::class.java)
|
|
dp.start()
|
|
arp.start()
|
|
|
|
PUT("/test") { context ->
|
|
context.send("ok")
|
|
}
|
|
|
|
}
|
|
|
|
override fun createRequestResponseFactory(): RequestResponseFactory {
|
|
val sessionDataStorage = CookieSessionDataStorage(pippoSettings)
|
|
val sessionManager = SessionManager(sessionDataStorage)
|
|
|
|
return SessionRequestResponseFactory(this, sessionManager)
|
|
}
|
|
}
|
|
|
|
class ForbiddenException(message: String) : RuntimeException(message) |