2021-05-20 01:50:50 +02:00
|
|
|
package eu.openaire.urls_controller.util;
|
|
|
|
|
2023-06-06 15:49:53 +02:00
|
|
|
import javax.servlet.http.HttpServletRequest;
|
2023-05-11 02:07:55 +02:00
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.Date;
|
|
|
|
|
2021-05-20 01:50:50 +02:00
|
|
|
public class GenericUtils {
|
|
|
|
|
2023-07-25 10:59:47 +02:00
|
|
|
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");
|
2023-05-11 02:07:55 +02:00
|
|
|
|
|
|
|
public static String getReadableCurrentTimeAndZone() {
|
|
|
|
return (simpleDateFormat.format(new Date(System.currentTimeMillis())));
|
|
|
|
}
|
|
|
|
|
2021-05-20 01:50:50 +02:00
|
|
|
|
|
|
|
public static int getRandomNumber(int min, int max) {
|
|
|
|
return (int)(Math.random() * (max - min +1) + min);
|
|
|
|
}
|
|
|
|
|
2023-05-11 02:07:55 +02:00
|
|
|
|
|
|
|
public static String getSelectiveStackTrace(Throwable thr, String initialMessage, int numOfLines)
|
|
|
|
{
|
|
|
|
StackTraceElement[] stels = thr.getStackTrace();
|
|
|
|
StringBuilder sb = new StringBuilder(numOfLines *100);
|
|
|
|
if ( initialMessage != null )
|
|
|
|
sb.append(initialMessage).append(" Stacktrace:").append("\n"); // This StringBuilder is thread-safe as a local-variable.
|
|
|
|
for ( int i = 0; (i < stels.length) && (i <= numOfLines); ++i ) {
|
|
|
|
sb.append(stels[i]);
|
|
|
|
if (i < numOfLines) sb.append("\n");
|
|
|
|
}
|
|
|
|
return sb.toString();
|
|
|
|
}
|
|
|
|
|
2023-06-06 15:49:53 +02:00
|
|
|
|
|
|
|
public static String getRequestorAddress(HttpServletRequest request)
|
|
|
|
{
|
|
|
|
String remoteAddr = request.getHeader("X-FORWARDED-FOR"); // This retrieves the original IP address, if the request passes through a proxy server.
|
|
|
|
if ( remoteAddr == null )
|
|
|
|
remoteAddr = request.getRemoteAddr();
|
|
|
|
return remoteAddr;
|
|
|
|
}
|
|
|
|
|
2021-05-20 01:50:50 +02:00
|
|
|
}
|