sorted methods alphabetically
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -28,92 +28,16 @@ public class Util {
|
||||
private static final MessageDigest SHA256 = getSha256();
|
||||
private static final String EMAIL_PATTERN = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
|
||||
|
||||
public static String urlEncode(Map<String, Object> data) {
|
||||
String params = data.entrySet()
|
||||
.stream()
|
||||
.map(entry -> encode(entry.getKey()) + "=" + encode(entry.getValue()))
|
||||
.collect(Collectors.joining("&"));
|
||||
return params;
|
||||
public static String dropEmail(String tx) {
|
||||
return tx.replaceAll( "[.\\-\\w]+@[.\\-\\w]+", "[email_removed]");
|
||||
}
|
||||
|
||||
private static String encode(Object value) {
|
||||
return URLEncoder.encode(value.toString(), StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
|
||||
public static MessageDigest getSha256() {
|
||||
try {
|
||||
return MessageDigest.getInstance("SHA-256");
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String sha256(String s) {
|
||||
byte[] bytes = SHA256.digest(s.getBytes(StandardCharsets.UTF_8));
|
||||
return hex(bytes);
|
||||
}
|
||||
|
||||
private static String hex(byte[] bytes) {
|
||||
StringBuffer buf = new StringBuffer(bytes.length*2);
|
||||
for (var byt : bytes) buf.append(hex(byt));
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public static String hex(int b){
|
||||
int lower = b & 0x0F;
|
||||
int upper = (b & 0xF0) >> 4;
|
||||
return (char)(upper < 10 ? '0'+upper : 'A'+upper-10)+""+(char)(lower < 10 ? '0'+lower : 'A'+lower-10);
|
||||
}
|
||||
|
||||
public static String t(String tx, Object ... fills){
|
||||
return Translation.get(Application.class,tx,fills);
|
||||
}
|
||||
|
||||
public static boolean isEmail(String email) {
|
||||
return email.matches(EMAIL_PATTERN);
|
||||
}
|
||||
|
||||
public static boolean simplePassword(String pass) {
|
||||
if (pass.length() < 6) return true;
|
||||
if (pass.length() < 8){
|
||||
for (int i=0; i<pass.length();i++){
|
||||
if (!Character.isLetterOrDigit(pass.charAt(i))) return false; // password contains special character
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (pass.length() < 10){
|
||||
var digit = false;
|
||||
var letter = false;
|
||||
for (int i=0; i<pass.length();i++){
|
||||
char c = pass.charAt(i);
|
||||
if (!Character.isLetterOrDigit(c)) return false; // password contains special character
|
||||
digit |= Character.isDigit(c);
|
||||
letter |= Character.isLetter(c);
|
||||
if (letter && digit) return false; // password contains letters and digits
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int unset(int value, int...flags) {
|
||||
for (int flag : flags){
|
||||
if ((value & flag) > 0) value ^= flag;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static User getUser(HttpServletRequest req) {
|
||||
var o = req.getSession().getAttribute(USER);
|
||||
return o instanceof User ? (User) o : null;
|
||||
}
|
||||
|
||||
public static String getPath(HttpServletRequest req) {
|
||||
var path = req.getPathInfo();
|
||||
return path == null ? INDEX : path.substring(1);
|
||||
|
||||
public static boolean getCheckbox(HttpServletRequest req, String key) {
|
||||
return "on".equals(req.getParameter(key));
|
||||
}
|
||||
|
||||
public static MailingList getMailingList(HttpServletRequest req) {
|
||||
@@ -122,8 +46,22 @@ public class Util {
|
||||
return MailingList.load(listEmail);
|
||||
}
|
||||
|
||||
public static boolean getCheckbox(HttpServletRequest req, String key) {
|
||||
return "on".equals(req.getParameter(key));
|
||||
public static <T> T getNullable(ResultSet rs, String colName) throws SQLException {
|
||||
final T val = (T) rs.getObject(colName);
|
||||
return rs.wasNull() ? null : val;
|
||||
}
|
||||
public static String getPath(HttpServletRequest req) {
|
||||
var path = req.getPathInfo();
|
||||
return path == null ? INDEX : path.substring(1);
|
||||
|
||||
}
|
||||
public static MessageDigest getSha256() {
|
||||
try {
|
||||
return MessageDigest.getInstance("SHA-256");
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,16 +95,75 @@ public class Util {
|
||||
if (s != null) return s;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String dropEmail(String tx) {
|
||||
return tx.replaceAll( "[.\\-\\w]+@[.\\-\\w]+", "[email_removed]");
|
||||
public static User getUser(HttpServletRequest req) {
|
||||
var o = req.getSession().getAttribute(USER);
|
||||
return o instanceof User ? (User) o : null;
|
||||
}
|
||||
|
||||
public static <T> T getNullable(ResultSet rs, String colName) throws SQLException {
|
||||
final T val = (T) rs.getObject(colName);
|
||||
return rs.wasNull() ? null : val;
|
||||
private static String hex(byte[] bytes) {
|
||||
StringBuffer buf = new StringBuffer(bytes.length*2);
|
||||
for (var byt : bytes) buf.append(hex(byt));
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public static String hex(int b){
|
||||
int lower = b & 0x0F;
|
||||
int upper = (b & 0xF0) >> 4;
|
||||
return (char)(upper < 10 ? '0'+upper : 'A'+upper-10)+""+(char)(lower < 10 ? '0'+lower : 'A'+lower-10);
|
||||
}
|
||||
|
||||
public static boolean isEmail(String email) {
|
||||
return email.matches(EMAIL_PATTERN);
|
||||
}
|
||||
|
||||
public static String sha256(String s) {
|
||||
byte[] bytes = SHA256.digest(s.getBytes(StandardCharsets.UTF_8));
|
||||
return hex(bytes);
|
||||
}
|
||||
|
||||
public static boolean simplePassword(String pass) {
|
||||
if (pass.length() < 6) return true;
|
||||
if (pass.length() < 8){
|
||||
for (int i=0; i<pass.length();i++){
|
||||
if (!Character.isLetterOrDigit(pass.charAt(i))) return false; // password contains special character
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (pass.length() < 10){
|
||||
var digit = false;
|
||||
var letter = false;
|
||||
for (int i=0; i<pass.length();i++){
|
||||
char c = pass.charAt(i);
|
||||
if (!Character.isLetterOrDigit(c)) return false; // password contains special character
|
||||
digit |= Character.isDigit(c);
|
||||
letter |= Character.isLetter(c);
|
||||
if (letter && digit) return false; // password contains letters and digits
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String t(String tx, Object ... fills){
|
||||
return Translation.get(Application.class,tx,fills);
|
||||
}
|
||||
|
||||
public static String urlEncode(Map<String, Object> data) {
|
||||
String params = data.entrySet()
|
||||
.stream()
|
||||
.map(entry -> encode(entry.getKey()) + "=" + encode(entry.getValue()))
|
||||
.collect(Collectors.joining("&"));
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
public static int unset(int value, int...flags) {
|
||||
for (int flag : flags){
|
||||
if ((value & flag) > 0) value ^= flag;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user