This repository has been archived on 2018-02-23. You can view files and clone it, but cannot push or open issues or pull requests.
url-shortener/src/main/kotlin/net/cismon/urlshortener/interceptor/AuthInterceptor.kt

39 lines
1.2 KiB
Kotlin

package net.cismon.urlshortener.interceptor
import net.cismon.urlshortener.service.AuthService
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
@Component
class AuthInterceptor: HandlerInterceptorAdapter() {
@Autowired
lateinit var authService: AuthService
override fun preHandle(
request: HttpServletRequest?,
response: HttpServletResponse?,
handler: Any?): Boolean {
val uid = request?.getHeader("x-auth-id")
val token = request?.getHeader("x-auth-token")
if (uid != null && token != null) {
try {
if (token == authService.getTokenById(uid.toLong()))
return true
else {
response?.sendError(403)
return false
}
} catch (ex: NumberFormatException) {
response?.sendError(400)
return false
}
}
response?.sendError(400)
return false
}
}