2021-03-16 14:25:15 +01:00
|
|
|
package eu.openaire.urls_controller.util;
|
|
|
|
|
|
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.core.env.Environment;
|
|
|
|
|
2021-12-06 19:27:39 +01:00
|
|
|
import java.io.BufferedReader;
|
|
|
|
import java.io.InputStreamReader;
|
2021-03-16 14:25:15 +01:00
|
|
|
import java.net.InetAddress;
|
2021-12-06 19:27:39 +01:00
|
|
|
import java.net.MalformedURLException;
|
|
|
|
import java.net.URL;
|
2021-03-16 14:25:15 +01:00
|
|
|
|
|
|
|
public class UriBuilder {
|
|
|
|
|
2022-01-30 21:14:52 +01:00
|
|
|
// private static final Logger logger = LoggerFactory.getLogger(UriBuilder.class);
|
|
|
|
//
|
|
|
|
// public static String baseUrl = null;
|
|
|
|
//
|
|
|
|
// public UriBuilder(Environment environment) {
|
|
|
|
// baseUrl = "http";
|
|
|
|
// String sslEnabled = environment.getProperty("server.ssl.enabled");
|
|
|
|
// if (sslEnabled == null) { // It's expected to not exist if there is no SSL-configuration.
|
|
|
|
// logger.warn("No property \"server.ssl.enabled\" was found in \"application.properties\". Continuing with plain HTTP..");
|
|
|
|
// sslEnabled = "false";
|
|
|
|
// }
|
|
|
|
// baseUrl += sslEnabled.equals("true") ? "s" : "";
|
|
|
|
// baseUrl += "://";
|
|
|
|
//
|
|
|
|
// String hostName = getPublicIP();
|
|
|
|
// if ( hostName == null )
|
|
|
|
// hostName = InetAddress.getLoopbackAddress().getHostName(); // Non-null.
|
|
|
|
//
|
|
|
|
// baseUrl += hostName;
|
|
|
|
// String serverPort = environment.getProperty("server.port");
|
|
|
|
// if (serverPort == null) { // This is unacceptable!
|
|
|
|
// logger.error("No property \"server.port\" was found in \"application.properties\"!");
|
|
|
|
// System.exit(-1); // Well, I guess the Spring Boot would not start in this case anyway.
|
|
|
|
// }
|
|
|
|
// baseUrl += ":" + serverPort;
|
|
|
|
//
|
|
|
|
// String baseInternalPath = environment.getProperty("server.servlet.context-path");
|
|
|
|
// if ( baseInternalPath != null ) {
|
|
|
|
// if ( !baseInternalPath.startsWith("/") )
|
|
|
|
// baseUrl += "/";
|
|
|
|
// baseUrl += baseInternalPath;
|
|
|
|
// if ( !baseInternalPath.endsWith("/") )
|
|
|
|
// baseUrl += "/";
|
|
|
|
// } else {
|
|
|
|
// logger.warn("No property \"server.servlet.context-path\" was found in \"application.properties\"!"); // Yes it's expected.
|
|
|
|
// baseUrl += "/";
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// logger.debug("ServerBaseURL: " + baseUrl);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// private String getPublicIP()
|
|
|
|
// {
|
|
|
|
// String publicIpAddress = "";
|
|
|
|
// URL url_name;
|
|
|
|
// try {
|
|
|
|
// url_name = new URL("https://api.ipify.org/");
|
|
|
|
// } catch (MalformedURLException mue) {
|
|
|
|
// logger.warn(mue.getMessage());
|
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
// try (BufferedReader bf = new BufferedReader(new InputStreamReader(url_name.openStream()))) {
|
|
|
|
// publicIpAddress = bf.readLine().trim();
|
|
|
|
// } catch (Exception e) {
|
|
|
|
// logger.warn("Cannot get the publicIP address for this machine!", e);
|
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
// return publicIpAddress;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// public static String getBaseUrl() {
|
|
|
|
// return baseUrl;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// public static void setBaseUrl(String baseUrl) {
|
|
|
|
// UriBuilder.baseUrl = baseUrl;
|
|
|
|
// }
|
2021-03-16 14:25:15 +01:00
|
|
|
|
|
|
|
}
|