初始化
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
package com.ifish.jpush.common;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import com.ifish.jpush.utils.Base64;
|
||||
import com.ifish.jpush.utils.StringUtils;
|
||||
|
||||
public class ServiceHelper {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ServiceHelper.class);
|
||||
private final static Pattern PUSH_PATTERNS = Pattern.compile("[^a-zA-Z0-9]");
|
||||
private final static String BASIC_PREFIX = "Basic";
|
||||
|
||||
private static final Random RANDOM = new Random(System.currentTimeMillis());
|
||||
private static final int MIN = 100000;
|
||||
private static final int MAX = Integer.MAX_VALUE;
|
||||
|
||||
private static final int MAX_BADGE_NUMBER = 99999;
|
||||
|
||||
private static final Pattern USERNAME_PATTERN = Pattern.compile("^[a-zA-Z0-9][a-zA-Z_0-9.、。@,-]*");
|
||||
private static final Pattern DATE_PATTERN = Pattern.compile("[0-9]{4}-[0-9]{2}-[0-9]{2}");
|
||||
private static final String DATE_FORMAT = "yyyy-MM-dd";
|
||||
|
||||
|
||||
public static boolean isValidIntBadge(int intBadge) {
|
||||
if (intBadge >= 0 && intBadge <= MAX_BADGE_NUMBER) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int generateSendno() {
|
||||
return RANDOM.nextInt((MAX - MIN) + 1) + MIN;
|
||||
}
|
||||
|
||||
public static String getBasicAuthorization(String username, String password) {
|
||||
String encodeKey = username + ":" + password;
|
||||
return BASIC_PREFIX + " " + String.valueOf(Base64.encode(encodeKey.getBytes()));
|
||||
}
|
||||
|
||||
public static void checkBasic(String appKey, String masterSecret) {
|
||||
if (StringUtils.isEmpty(appKey)
|
||||
|| StringUtils.isEmpty(masterSecret)) {
|
||||
throw new IllegalArgumentException("appKey and masterSecret are both required.");
|
||||
}
|
||||
if (appKey.length() != 24
|
||||
|| masterSecret.length() != 24
|
||||
|| PUSH_PATTERNS.matcher(appKey).find()
|
||||
|| PUSH_PATTERNS.matcher(masterSecret).find()) {
|
||||
throw new IllegalArgumentException("appKey and masterSecret format is incorrect. "
|
||||
+ "They should be 24 size, and be composed with alphabet and numbers. "
|
||||
+ "Please confirm that they are coming from JPush Web Portal.");
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonArray fromSet(Set<String> sets) {
|
||||
JsonArray array = new JsonArray();
|
||||
if (null != sets && sets.size() > 0) {
|
||||
for (String item : sets) {
|
||||
array.add(new JsonPrimitive(item));
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
public static boolean checkUsername(String username) {
|
||||
return USERNAME_PATTERN.matcher(username).matches();
|
||||
}
|
||||
|
||||
public static boolean isValidBirthday( String birthday) {
|
||||
try {
|
||||
if( ! DATE_PATTERN.matcher(birthday).matches() ) {
|
||||
return false;
|
||||
}
|
||||
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
|
||||
format.setLenient(false);
|
||||
format.parse(birthday);
|
||||
} catch (Exception e) {
|
||||
LOG.error("incorrect date format. " + birthday, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user