39 lines
1.2 KiB
Kotlin
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
|
|
}
|
|
|
|
} |