Fix last login bug
This commit is contained in:
@@ -24,6 +24,8 @@ object UserConverter {
|
||||
expiration = user.expiration,
|
||||
credentialsExpiration = user.credentialsExpiration,
|
||||
enable = user.enable?.let { it == 1 },
|
||||
currentLoginTime = user.currentLoginTime,
|
||||
currentLoginIp = user.currentLoginIp,
|
||||
lastLoginTime = user.lastLoginTime,
|
||||
lastLoginIp = user.lastLoginIp,
|
||||
createTime = user.createTime,
|
||||
|
||||
@@ -60,6 +60,18 @@ class User() : Serializable {
|
||||
@TableField("enable")
|
||||
var enable: Int? = null
|
||||
|
||||
/**
|
||||
* 当前登录时间
|
||||
*/
|
||||
@TableField("current_login_time")
|
||||
var currentLoginTime: LocalDateTime? = null
|
||||
|
||||
/**
|
||||
* 当前登录 IP
|
||||
*/
|
||||
@TableField("current_login_ip")
|
||||
var currentLoginIp: String? = null
|
||||
|
||||
/**
|
||||
* 上次登录时间
|
||||
*/
|
||||
@@ -108,6 +120,6 @@ class User() : Serializable {
|
||||
var operations: List<Operation>? = null
|
||||
|
||||
override fun toString(): String {
|
||||
return "User(id=$id, username=$username, password=$password, locking=$locking, expiration=$expiration, credentialsExpiration=$credentialsExpiration, enable=$enable, lastLoginTime=$lastLoginTime, lastLoginIp=$lastLoginIp, createTime=$createTime, updateTime=$updateTime, deleted=$deleted, version=$version, roles=$roles, groups=$groups, menus=$menus, elements=$elements, operations=$operations)"
|
||||
return "User(id=$id, username=$username, password=$password, locking=$locking, expiration=$expiration, credentialsExpiration=$credentialsExpiration, enable=$enable, currentLoginTime=$currentLoginTime, currentLoginIp=$currentLoginIp, lastLoginTime=$lastLoginTime, lastLoginIp=$lastLoginIp, createTime=$createTime, updateTime=$updateTime, deleted=$deleted, version=$version, roles=$roles, groups=$groups, menus=$menus, elements=$elements, operations=$operations)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,14 +36,17 @@ class AuthenticationServiceImpl(
|
||||
throw RuntimeException("Login failed")
|
||||
}
|
||||
|
||||
logger.info("用户登录 [用户名: '{}', IP: '{}']", user.username, request.remoteAddr)
|
||||
userService.update(User().apply {
|
||||
lastLoginIp = request.remoteAddr
|
||||
lastLoginTime = LocalDateTime.now(ZoneOffset.UTC)
|
||||
}, KtUpdateWrapper(User()).eq(User::username, user.username))
|
||||
|
||||
val loginUser = authentication.principal as LoginUser
|
||||
loginUser.user.password = ""
|
||||
|
||||
logger.info("用户登录 [用户名: '{}', IP: '{}']", user.username, request.remoteAddr)
|
||||
userService.update(User().apply {
|
||||
currentLoginIp = request.remoteAddr
|
||||
currentLoginTime = LocalDateTime.now(ZoneOffset.UTC)
|
||||
lastLoginIp = loginUser.user.currentLoginIp
|
||||
lastLoginTime = loginUser.user.currentLoginTime
|
||||
}, KtUpdateWrapper(User()).eq(User::username, user.username))
|
||||
|
||||
val userId = loginUser.user.id.toString()
|
||||
val jwt = JwtUtil.createJwt(userId)
|
||||
|
||||
|
||||
@@ -22,6 +22,12 @@ data class UserInfoVo(
|
||||
@Schema(description = "是否启用", example = "true")
|
||||
val enable: Boolean?,
|
||||
|
||||
@Schema(description = "当前登录时间", example = "1900-01-01T00:00:00.000Z")
|
||||
val currentLoginTime: LocalDateTime?,
|
||||
|
||||
@Schema(description = "当前登录 IP", example = "1.1.1.1")
|
||||
val currentLoginIp: String?,
|
||||
|
||||
@Schema(description = "最后登录时间", example = "1900-01-01T00:00:00.000Z")
|
||||
val lastLoginTime: LocalDateTime?,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user