@@ -12,29 +12,36 @@ import io.javalin.http.staticfiles.Location
12
12
import io.javalin.security.RouteRole
13
13
import mu.KotlinLogging
14
14
import no.nais.cloud.testnais.sandbox.bachelorurlforkorter.common.config.*
15
- import no.nais.cloud.testnais.sandbox.bachelorurlforkorter.common.db.DatabaseInitializer
15
+ import no.nais.cloud.testnais.sandbox.bachelorurlforkorter.common.db.DatabaseInit
16
16
import org.slf4j.MDC
17
17
18
18
private val logger = KotlinLogging .logger {}
19
19
20
20
fun main () {
21
21
val config = createApplicationConfig()
22
- DatabaseInitializer . init (config)
22
+ DatabaseInit .start (config)
23
23
startAppServer(config);
24
24
}
25
25
26
26
fun startAppServer (config : Config ) {
27
27
val app = Javalin .create { javalinConfig ->
28
28
javalinConfig.router.apiBuilder {
29
29
path(" api" ) {
30
+ post(" sjekk" , UrlForkorterController ::sjekk, Rolle .Alle )
30
31
get(" test" , UrlForkorterController ::test, Rolle .Alle )
31
- get(" sjekk/{korturl}" , UrlForkorterController ::sjekk, Rolle .Alle )
32
32
33
- post(" test" , UrlForkorterController ::test, Rolle .NavInnloggetBruker )
34
- post(" forkort/{langurl} " , UrlForkorterController ::forkort, Rolle .Alle )
33
+ post(" test" , UrlForkorterController ::test, Rolle .InternNavInnlogget )
34
+ post(" forkort" , UrlForkorterController ::forkort, Rolle .Alle )
35
35
}
36
36
}
37
+ javalinConfig.router.apiBuilder {
38
+ get(" {korturl}" , UrlForkorterController ::redirect, Rolle .Alle )
39
+ }
37
40
javalinConfig.staticFiles.add(" /public" , Location .CLASSPATH )
41
+ // TODO: Kun for lokal utvikling med hot reload
42
+ javalinConfig.bundledPlugins.enableCors {cors ->
43
+ cors.addRule {it.allowHost(" http://localhost:5173" )}
44
+ }
38
45
}
39
46
40
47
app.before { ctx ->
@@ -104,8 +111,9 @@ private fun validateAcceptHeader(ctx: Context) {
104
111
}
105
112
106
113
enum class Rolle : RouteRole {
107
- NavInnloggetBruker ,
108
- Alle
114
+ Alle ,
115
+ InternNavInnlogget ,
116
+ AdminNavInnlogget
109
117
}
110
118
111
119
private fun checkAccessToEndpoint (ctx : Context , config : Config ) {
@@ -115,7 +123,7 @@ private fun checkAccessToEndpoint(ctx: Context, config: Config) {
115
123
throw UnauthorizedResponse ()
116
124
}
117
125
118
- ctx.routeRoles().contains(Rolle .NavInnloggetBruker ) -> {
126
+ ctx.routeRoles().contains(Rolle .InternNavInnlogget ) -> {
119
127
val isValidUsername = config.authConfig.basicAuthUsername == ctx.basicAuthCredentials()?.username
120
128
val isValidPassword = config.authConfig.basicAuthPassword.value == ctx.basicAuthCredentials()?.password
121
129
0 commit comments