[+] Add joinDate field to the User model

This commit is contained in:
Hykilpikonna
2021-01-22 18:42:42 -05:00
parent 1c32a50e2f
commit e12ff4d4e1
2 changed files with 8 additions and 2 deletions
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
@@ -32,7 +33,7 @@ public class UserController {
* Register a user to the database. * Register a user to the database.
* *
* https://www.baeldung.com/spring-rest-http-headers * https://www.baeldung.com/spring-rest-http-headers
* TODO: This method should be synchronized to avoid race condition. * This method should be synchronized to avoid race condition.
* Also, this method should not be private, or else cannot use userRepository. * Also, this method should not be private, or else cannot use userRepository.
* *
* TODO: 2021/1/22 Need a better design! * TODO: 2021/1/22 Need a better design!
@@ -61,6 +62,7 @@ public class UserController {
User user = new User(); User user = new User();
user.setUsername(username); user.setUsername(username);
user.setPasswordMd5(userToSaltedMd5(username, password)); user.setPasswordMd5(userToSaltedMd5(username, password));
user.setJoinDate(new Date());
// After save and flush, uuid field will be generated automatically. // After save and flush, uuid field will be generated automatically.
userRepository.saveAndFlush(user); userRepository.saveAndFlush(user);
@@ -110,7 +112,7 @@ public class UserController {
}); });
} }
@PostMapping("login") @PostMapping("/login")
public synchronized ResponseEntity<String> login(@RequestHeader String username, @RequestHeader String password) { public synchronized ResponseEntity<String> login(@RequestHeader String username, @RequestHeader String password) {
return checkPasswordAndDo(username, password, user -> userRepository.queryByUsername(username).getUuid()); return checkPasswordAndDo(username, password, user -> userRepository.queryByUsername(username).getUuid());
} }
@@ -9,6 +9,7 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.util.Date;
@Data @Data
@Entity(name = "users") @Entity(name = "users")
@@ -40,4 +41,7 @@ public class User {
@NotNull(message = ErrorCode.INNER_PASSWORD_MD5_IS_NULL) @NotNull(message = ErrorCode.INNER_PASSWORD_MD5_IS_NULL)
@Pattern(regexp = RE_LOWER_MD5, message = ErrorCode.INNER_PASSWORD_MD5_NOT_MATCH_REGEX) @Pattern(regexp = RE_LOWER_MD5, message = ErrorCode.INNER_PASSWORD_MD5_NOT_MATCH_REGEX)
private String passwordMd5; private String passwordMd5;
@NotNull
private Date joinDate;
} }