提交 09e653c8 authored 作者: Whispa's avatar Whispa

commit

上级 bce4bc88
......@@ -115,8 +115,42 @@ public class AuthController extends Controller {
String email = signUpRequest.getEmail();
String password = signUpRequest.getPassword();
email = email == null ? "" : email.trim();
if( email.isEmpty() ){
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Email is empty");
}
if( !isEmailValid(email) ){
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Invalid email");
}
if( password == null || password.isEmpty() ){
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Password is Empty");
}
if( !isPasswordValid(password) ){
String string = "Password is not strong";
if( !isPasswordValidDigit(password) ){
string += ", a digit must occur at least once";
}
if( !isPasswordValidUpperCase(password) ){
string += ", an upper case letter must occur at least once";
}
if( !isPasswordValidLength(password) ){
string += ", at least eight characters though";
}
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(),string);
}
boolean byEmail = userRepository.existsByFirebaseUid(email);
if ( byEmail ) {
......@@ -131,8 +165,6 @@ public class AuthController extends Controller {
fillUserNecessayInfo(signUpRequest);
String password = signUpRequest.getPassword();
signUpRequest.setPassword(encoder.encode(password));
signUpRequest.setLastLoginTime(new Date());
......
......@@ -26,6 +26,8 @@ import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
abstract class Controller {
......@@ -34,6 +36,37 @@ abstract class Controller {
}
static boolean isEmailValid(String email) {
return validRex(email,"^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$");
}
static boolean isPasswordVeryStrong(String password) {
return validRex(password,"^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$");
}
static boolean isPasswordValid(String password) {
return validRex(password,"^(?=.*[0-9])(?=.*[A-Z]).{8,}$");
}
static boolean isPasswordValidDigit(String password) {
return validRex(password,"^(?=.*[0-9])$");
}
static boolean isPasswordValidUpperCase(String password) {
return validRex(password,"^(?=.*[A-Z])$");
}
static boolean isPasswordValidLength(String password) {
return validRex(password,"^.{8,}$");
}
private static boolean validRex(String text,String expression){
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(text);
return matcher.matches();
}
static int id = 0;
NumberFormat formatter = new DecimalFormat("#0.00");
......
......@@ -29,13 +29,6 @@ public class UserController extends Controller {
this.user = user;
}
private static boolean isEmailValid(String email) {
String expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
@PutMapping("bindPhoneOrEmail")
public Result bindPhoneOrEmail(@RequestParam(value = "email",required = false) String email,@RequestParam(value = "code",required = false) String code,@RequestParam(value = "phone",required = false) String phone){
TbCfUserInfo user = this.user.user();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论