-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathLoginLog.java
More file actions
45 lines (38 loc) · 1.12 KB
/
LoginLog.java
File metadata and controls
45 lines (38 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package clap.server.domain.model.auth;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.time.LocalDateTime;
@Getter
@SuperBuilder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoginLog {
private String nickname;
private String clientIp;
private LocalDateTime lastAttemptAt;
private int failedCount;
private boolean isLocked;
public static LoginLog createLoginLog(String nickname, String clientIp) {
return LoginLog.builder()
.nickname(nickname)
.clientIp(clientIp)
.lastAttemptAt(LocalDateTime.now())
.failedCount(1)
.isLocked(false)
.build();
}
public int recordFailedAttempt() {
this.failedCount++;
return this.failedCount;
}
public void setLocked(boolean locked) {
isLocked = locked;
}
public String toSummaryString() {
return "{" +
"failedCount=" + failedCount +
", isLocked=" + isLocked +
'}';
}
}