cowr_upgram/src/main/java/Main.kt

111 lines
4.0 KiB
Kotlin
Raw Normal View History

2017-09-26 11:24:48 +08:00
import com.jfinal.plugin.activerecord.ActiveRecordPlugin
import com.jfinal.plugin.druid.DruidPlugin
import model.JFinalModelMenu
import model.JFinalModelUser
2017-10-11 14:53:16 +08:00
import model.JSONResponse
2017-09-25 10:06:58 +08:00
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
2017-09-25 10:06:58 +08:00
object Main {
@JvmStatic
fun main(args: Array<String>) {
// System.setProperty("user.timezone","Asia/Shanghai");
2017-09-25 10:06:58 +08:00
val pippo = Pippo(BasicApplication())
pippo.start()
2017-09-27 16:02:57 +08:00
2017-09-25 10:06:58 +08:00
}
}
class BasicApplication : ControllerApplication() {
private val log = LoggerFactory.getLogger(BasicApplication::class.java)
2017-09-26 11:24:48 +08:00
// private val druidDataSource: DruidDataSource = DruidDataSource()
2017-09-25 10:06:58 +08:00
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
}
}
}
}
2017-10-11 14:53:16 +08:00
// routeContext.status(403)
routeContext.json().send(JSONResponse(410,"",null))
}.runAsFinally()
2017-09-25 10:06:58 +08:00
addControllers(CtrlUser::class.java)
addControllers(CrtlGroup::class.java)
addControllers(CtrlMenu::class.java)
addControllers(CtrlPerm::class.java)
addControllers(CtrlRole::class.java)
2017-09-26 11:24:48 +08:00
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()
2017-09-27 16:02:57 +08:00
PUT("/test") { context ->
context.send("ok")
}
2017-09-25 10:06:58 +08:00
}
override fun createRequestResponseFactory(): RequestResponseFactory {
val sessionDataStorage = CookieSessionDataStorage(pippoSettings)
val sessionManager = SessionManager(sessionDataStorage)
return SessionRequestResponseFactory(this, sessionManager)
}
}
class ForbiddenException(message: String) : RuntimeException(message)