src/main/kotlin/de/uapcore/lightpit/RequestMapping.kt

changeset 367
0a9065936aac
parent 358
e46bef1bdddd
equal deleted inserted replaced
366:b351e70ab325 367:0a9065936aac
25 25
26 package de.uapcore.lightpit 26 package de.uapcore.lightpit
27 27
28 import de.uapcore.lightpit.dao.DataAccessObject 28 import de.uapcore.lightpit.dao.DataAccessObject
29 import de.uapcore.lightpit.entities.HasNode 29 import de.uapcore.lightpit.entities.HasNode
30 import de.uapcore.lightpit.entities.User
30 import de.uapcore.lightpit.viewmodel.NavMenu 31 import de.uapcore.lightpit.viewmodel.NavMenu
31 import de.uapcore.lightpit.viewmodel.View 32 import de.uapcore.lightpit.viewmodel.View
32 import jakarta.servlet.http.HttpServletRequest 33 import jakarta.servlet.http.HttpServletRequest
33 import jakarta.servlet.http.HttpServletResponse 34 import jakarta.servlet.http.HttpServletResponse
34 import jakarta.servlet.http.HttpSession 35 import jakarta.servlet.http.HttpSession
50 sealed interface ValidationResult<T> 51 sealed interface ValidationResult<T>
51 class ValidationError<T>(val message: String): ValidationResult<T> 52 class ValidationError<T>(val message: String): ValidationResult<T>
52 class ValidatedValue<T>(val result: T): ValidationResult<T> 53 class ValidatedValue<T>(val result: T): ValidationResult<T>
53 54
54 class HttpRequest( 55 class HttpRequest(
56 val user: User?,
55 val request: HttpServletRequest, 57 val request: HttpServletRequest,
56 val response: HttpServletResponse, 58 val response: HttpServletResponse,
57 val pathParams: PathParameters = emptyMap() 59 val pathParams: PathParameters = emptyMap()
58 ) { 60 ) {
59 val session: HttpSession = request.session 61 val session: HttpSession = request.session
60 62
61 val remoteUser: String? = request.remoteUser
62
63 /** 63 /**
64 * The name of the content page. 64 * The name of the content page.
65 * 65 *
66 * @see Constants#REQ_ATTR_CONTENT_PAGE 66 * @see Constants#REQ_ATTR_CONTENT_PAGE
67 */ 67 */
150 150
151 /** 151 /**
152 * The base path of this application. 152 * The base path of this application.
153 */ 153 */
154 val baseHref get() = "${request.scheme}://${request.serverName}$portInfo${request.contextPath}/" 154 val baseHref get() = "${request.scheme}://${request.serverName}$portInfo${request.contextPath}/"
155
156 init {
157 request.setAttribute(Constants.REQ_ATTR_BASE_HREF, baseHref)
158 }
155 159
156 private fun String.withExt(ext: String) = if (endsWith(ext)) this else plus(ext) 160 private fun String.withExt(ext: String) = if (endsWith(ext)) this else plus(ext)
157 private fun jspPath(name: String) = Constants.JSP_PATH_PREFIX.plus(name).withExt(".jsp") 161 private fun jspPath(name: String) = Constants.JSP_PATH_PREFIX.plus(name).withExt(".jsp")
158 162
159 fun paramIndexed(prefix: String): Map<Int, String> = buildMap { 163 fun paramIndexed(prefix: String): Map<Int, String> = buildMap {

mercurial