...
This commit is contained in:
@@ -61,15 +61,18 @@ class BumsInterceptor : HandlerInterceptor {
|
||||
response.addCookie(cookieUpdate(refresh))
|
||||
response.addCookie(cookieUpdate(access))
|
||||
modelAndView?.modelMap?.put(WRITE_PERMISSION_KEY,"OK")
|
||||
modelAndView?.modelMap?.put("user_id", jwtService.getUserIdFromToken(access?.value ?: ""))
|
||||
} else {
|
||||
println("Response correctUserCheck ===> ${correctUserCheck}")
|
||||
response.addCookie(Cookie("access","").apply { maxAge = -1 })
|
||||
response.addCookie(Cookie("refresh","").apply { maxAge = -1 })
|
||||
modelAndView?.modelMap?.put(WRITE_PERMISSION_KEY,"NO")
|
||||
modelAndView?.modelMap?.put("user_id", "")
|
||||
}
|
||||
println("Response modelMap ===> ${Gson().toJson(modelAndView?.modelMap)}")
|
||||
} else if (request.requestURI.contains("logout")) {
|
||||
modelAndView?.modelMap?.put(WRITE_PERMISSION_KEY,"NO")
|
||||
modelAndView?.modelMap?.put("user_id", "")
|
||||
}
|
||||
|
||||
println("==================== END ======================")
|
||||
|
||||
@@ -30,6 +30,7 @@ class JwtGenerator {
|
||||
|
||||
return Jwts.builder()
|
||||
.setHeader(createHeader())
|
||||
.setClaims(createClaims(user))
|
||||
.setSubject(user.getIdentifier())
|
||||
.setExpiration(Date(now + REFRESH_EXPIRATION))
|
||||
.signWith(REFRESH_SECRET, SignatureAlgorithm.HS256)
|
||||
|
||||
@@ -73,54 +73,67 @@ class UserController {
|
||||
@ResponseBody
|
||||
@PostMapping("login.ajax")
|
||||
fun login(httpServletRequest: HttpServletRequest, @RequestBody jsonString: String) : ResponseEntity<LoginResult> {
|
||||
logService.log(httpServletRequest.requestURI)
|
||||
logService.log(jsonString)
|
||||
var lResultCode = 0
|
||||
var lResultMsg = "Suscces"
|
||||
var u : UserDetails? = null
|
||||
var user : User? = null
|
||||
var tokenData : TokenData? = null
|
||||
jsonString.extractModelData { exception, originDataString ->
|
||||
if (exception == null) {
|
||||
logService.log(originDataString)
|
||||
val target = Gson().fromJson(originDataString, User::class.java) ?: User()
|
||||
user = userManager.findById(target.user_id!!)?.block()
|
||||
if (user == null && ((target.user_id?.length ?: 0) > 3 == true)) {
|
||||
user = userManager.findByEmail(target.user_id!!)?.block()
|
||||
}
|
||||
if (user != null) {
|
||||
if(userManager.isCorrectUser(user!!,target.user_pw!!)){
|
||||
tokenData = jwtService.generate(user!!)
|
||||
} else {
|
||||
lResultMsg = "is wrong infomation id or passord"
|
||||
lResultCode = 7100
|
||||
}
|
||||
} else {
|
||||
lResultMsg = "not founding user[can't find same id,email.. ]"
|
||||
lResultCode = 7100
|
||||
}
|
||||
} else {
|
||||
exception.printStackTrace()
|
||||
lResultMsg = exception.message ?: "unknown exception"
|
||||
lResultCode = 7999
|
||||
}
|
||||
}
|
||||
val responce = ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).headers {
|
||||
try {
|
||||
logService.log(httpServletRequest.requestURI)
|
||||
logService.log(jsonString)
|
||||
var lResultCode = 0
|
||||
var lResultMsg = "Suscces"
|
||||
var u : UserDetails? = null
|
||||
var user : User? = null
|
||||
var tokenData : TokenData? = null
|
||||
jsonString.extractModelData { exception, originDataString ->
|
||||
if (exception == null) {
|
||||
logService.log(originDataString)
|
||||
val target = Gson().fromJson(originDataString, User::class.java) ?: User()
|
||||
user = userManager.findById(target.user_id?.trim() ?: "")?.block()
|
||||
if (user == null && ((target.user_id?.trim()?.length ?: 0) > 3 == true)) {
|
||||
user = userManager.findByEmail(target.user_id?.trim() ?: "")?.block()
|
||||
}
|
||||
if (user != null) {
|
||||
if(userManager.isCorrectUser(user!!,target.user_pw!!)){
|
||||
tokenData = jwtService.generate(user!!)
|
||||
} else {
|
||||
lResultMsg = "is wrong infomation id or passord"
|
||||
lResultCode = 7100
|
||||
}
|
||||
} else {
|
||||
lResultMsg = "not founding user[can't find same id,email.. ]"
|
||||
lResultCode = 7100
|
||||
}
|
||||
} else {
|
||||
exception.printStackTrace()
|
||||
lResultMsg = exception.message ?: "unknown exception"
|
||||
lResultCode = 7999
|
||||
}
|
||||
}
|
||||
val responce = ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).headers {
|
||||
|
||||
}.body(LoginResult().apply {
|
||||
this.isOk = lResultCode == 0
|
||||
this.resultCode = lResultCode
|
||||
this.resultMsg = lResultMsg
|
||||
this.token = setTokenToCookie(JwtRule.ACCESS_PREFIX.value, tokenData?.tokenKey ?: "", globalEvv.ACCESS_EXPIRATION / 1000).toString().replace("access=","")
|
||||
this.refresh = setTokenToCookie(JwtRule.REFRESH_PREFIX.value, tokenData?.refreshToken ?: "", globalEvv.REFRESH_EXPIRATION / 1000).toString().replace("refresh=","")
|
||||
}).apply {
|
||||
|
||||
|
||||
}
|
||||
|
||||
return responce
|
||||
}catch (e: Exception){
|
||||
return ResponseEntity.internalServerError().contentType(MediaType.APPLICATION_JSON).headers {
|
||||
|
||||
}.body(LoginResult().apply {
|
||||
this.isOk = false
|
||||
this.resultCode = -999
|
||||
this.resultMsg = e.message ?: "unknown exception"
|
||||
this.token = ""
|
||||
this.refresh = ""
|
||||
}).apply {
|
||||
|
||||
|
||||
}.body(LoginResult().apply {
|
||||
this.resultCode = lResultCode
|
||||
this.resultMsg = lResultMsg
|
||||
this.token = setTokenToCookie(JwtRule.ACCESS_PREFIX.value, tokenData?.tokenKey ?: "", globalEvv.ACCESS_EXPIRATION / 1000).toString().replace("access=","")
|
||||
this.refresh = setTokenToCookie(JwtRule.REFRESH_PREFIX.value, tokenData?.refreshToken ?: "", globalEvv.REFRESH_EXPIRATION / 1000).toString().replace("refresh=","")
|
||||
}).apply {
|
||||
|
||||
|
||||
}
|
||||
|
||||
return responce
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ class User {
|
||||
}
|
||||
|
||||
fun getIdentifier(): String? {
|
||||
return userId
|
||||
return user_id
|
||||
}
|
||||
|
||||
fun getRole(): UserRole {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package kr.lunaticbum.back.lun.service
|
||||
|
||||
import io.jsonwebtoken.Claims
|
||||
import io.jsonwebtoken.Jws
|
||||
import io.jsonwebtoken.Jwts
|
||||
import jakarta.servlet.http.HttpServletRequest
|
||||
import jakarta.servlet.http.HttpServletResponse
|
||||
@@ -129,4 +131,12 @@ class JwtService {
|
||||
response.addCookie(accessCookie)
|
||||
response.addCookie(refreshCookie)
|
||||
}
|
||||
fun getUserIdFromToken(token: String?): String? {
|
||||
try {
|
||||
return jwtUtil.extractToken(token,jwtUtil.getSigningKey(globalEvv.ACCESS_SECRET_KEY))?.body?.get("Identifier")
|
||||
.toString()
|
||||
} catch (e: Exception) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
package kr.lunaticbum.back.lun.utils
|
||||
|
||||
import io.jsonwebtoken.ExpiredJwtException
|
||||
import io.jsonwebtoken.JwtException
|
||||
import io.jsonwebtoken.Jwts
|
||||
import io.jsonwebtoken.*
|
||||
import io.jsonwebtoken.security.Keys
|
||||
import jakarta.servlet.http.Cookie
|
||||
import kr.lunaticbum.back.lun.configs.JwtRule
|
||||
@@ -23,7 +21,6 @@ import java.util.*
|
||||
@RequiredArgsConstructor
|
||||
class JwtUtil {
|
||||
|
||||
|
||||
fun getTokenStatus(token: String?, secretKey: Key?): TokenStatus {
|
||||
try {
|
||||
var cls = Jwts.parserBuilder()
|
||||
@@ -68,6 +65,17 @@ class JwtUtil {
|
||||
cookie.setPath("/")
|
||||
return cookie
|
||||
}
|
||||
|
||||
fun extractToken(token: String?, secretKey: Key?): Jws<Claims>? {
|
||||
try {
|
||||
return Jwts.parserBuilder()
|
||||
.setSigningKey(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
} catch (e: JwtException) {
|
||||
throw BusinessException(ErrorCode.INVALID_JWT)
|
||||
}
|
||||
}
|
||||
}
|
||||
class BusinessException(error : ErrorCode) : Exception(error.name)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user