diff --git a/src/main/java/de/devloop/mavor/AuthenticatedServlet.java b/src/main/java/de/devloop/mavor/AuthenticatedServlet.java index e2970e1..6a9a17e 100644 --- a/src/main/java/de/devloop/mavor/AuthenticatedServlet.java +++ b/src/main/java/de/devloop/mavor/AuthenticatedServlet.java @@ -3,11 +3,10 @@ package de.devloop.mavor; import java.io.IOException; import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -public class AuthenticatedServlet extends HttpServlet { +public class AuthenticatedServlet extends BaseServlet { protected Session session; @Override diff --git a/src/main/java/de/devloop/mavor/BaseServlet.java b/src/main/java/de/devloop/mavor/BaseServlet.java new file mode 100644 index 0000000..27cf59e --- /dev/null +++ b/src/main/java/de/devloop/mavor/BaseServlet.java @@ -0,0 +1,19 @@ +package de.devloop.mavor; + +import java.io.IOException; + +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; + +public class BaseServlet extends HttpServlet { + protected Configuration configuration; + + @Override + public void init() throws ServletException { + try { + configuration = new Configuration(); + } catch (IOException e) { + throw new ServletException("Configuration Error", e); + } + } +} \ No newline at end of file diff --git a/src/main/java/de/devloop/mavor/Configuration.java b/src/main/java/de/devloop/mavor/Configuration.java index 5dde83c..72c6bc9 100644 --- a/src/main/java/de/devloop/mavor/Configuration.java +++ b/src/main/java/de/devloop/mavor/Configuration.java @@ -9,6 +9,8 @@ public class Configuration { private static final String DEVELOPMENT_PROPERTIES = "development.properties"; + private static final String ENV_WEB_ROOT = "MAVOR_WEB_ROOT"; + private static final String ENV_MAVEN_EXECUTABLE = "MAVOR_MAVEN_EXECUTABLE"; private static final String ENV_TEMP_DIR = "MAVOR_TEMP_DIR"; @@ -20,6 +22,7 @@ public class Configuration { private static final String ENV_OPENID_USERINFO_URL = "MAVOR_OPENID_USERINFO_URL"; private static final String ENV_OPENID_LOGOUT_URL = "MAVOR_OPENID_LOGOUT_URL"; + private String webRoot; private String mavenExecutable; private String tempDir; private String openIdClientId; @@ -43,6 +46,7 @@ public class Configuration { } private void initByProperties(Properties properties) { + webRoot = getNullSafeProperty(properties, ENV_WEB_ROOT); mavenExecutable = getNullSafeProperty(properties, ENV_MAVEN_EXECUTABLE); tempDir = getNullSafeProperty(properties, ENV_TEMP_DIR); openIdClientId = getNullSafeProperty(properties, ENV_OPENID_CLIENT_ID); @@ -58,6 +62,10 @@ public class Configuration { return Objects.requireNonNull(properties.getProperty(key)); } + public String getWebRoot() { + return webRoot; + } + public String getMavenExecutable() { return mavenExecutable; } diff --git a/src/main/java/de/devloop/mavor/servlet/Authentication.java b/src/main/java/de/devloop/mavor/servlet/Authentication.java index d9cab78..6524ac1 100644 --- a/src/main/java/de/devloop/mavor/servlet/Authentication.java +++ b/src/main/java/de/devloop/mavor/servlet/Authentication.java @@ -2,7 +2,7 @@ package de.devloop.mavor.servlet; import java.io.IOException; -import de.devloop.mavor.Configuration; +import de.devloop.mavor.BaseServlet; import de.devloop.mavor.Session; import de.devloop.openid.AuthenticationUrl; import de.devloop.openid.OpenID; @@ -12,12 +12,11 @@ import de.devloop.openid.Token; import de.devloop.openid.UserInfo; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; -import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet("/authenticate") -public class Authentication extends HttpServlet { +public class Authentication extends BaseServlet { private static final String PARAMETER_STATE = "state"; private static final String PARAMETER_CODE = "code"; @@ -27,12 +26,7 @@ public class Authentication extends HttpServlet { @Override public void init() throws ServletException { - Configuration configuration; - try { - configuration = new Configuration(); - } catch (IOException e) { - throw new ServletException("Configuration Error", e); - } + super.init(); openIdConfiguration = new OpenIdConfiguration(); openIdConfiguration.setAuthUrl(configuration.getOpenIdAuthUrl()); diff --git a/src/main/java/de/devloop/mavor/servlet/DownloadJars.java b/src/main/java/de/devloop/mavor/servlet/DownloadJars.java index 9b1374d..7a4fa9c 100644 --- a/src/main/java/de/devloop/mavor/servlet/DownloadJars.java +++ b/src/main/java/de/devloop/mavor/servlet/DownloadJars.java @@ -18,7 +18,6 @@ import java.util.zip.ZipOutputStream; import de.devloop.mavor.Artifact; import de.devloop.mavor.AuthenticatedServlet; -import de.devloop.mavor.Configuration; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; @@ -35,17 +34,6 @@ public class DownloadJars extends AuthenticatedServlet { private static final String PARAMETER_POM = "pom"; private static final String PARAMETER_TYPE = "type"; - private Configuration configuration; - - @Override - public void init() throws ServletException { - try { - configuration = new Configuration(); - } catch (IOException e) { - throw new ServletException("Configuration Error", e); - } - } - @Override protected void doAuthenticatedPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doAuthenticatedGet(req, resp); diff --git a/src/main/java/de/devloop/mavor/servlet/DownloadZip.java b/src/main/java/de/devloop/mavor/servlet/DownloadZip.java index 20870fb..935782e 100644 --- a/src/main/java/de/devloop/mavor/servlet/DownloadZip.java +++ b/src/main/java/de/devloop/mavor/servlet/DownloadZip.java @@ -5,7 +5,6 @@ import java.io.FileInputStream; import java.io.IOException; import de.devloop.mavor.AuthenticatedServlet; -import de.devloop.mavor.Configuration; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServletRequest; @@ -16,17 +15,6 @@ public class DownloadZip extends AuthenticatedServlet { private static final String PARAMETER_FILENAME = "file"; - private Configuration configuration; - - @Override - public void init() throws ServletException { - try { - configuration = new Configuration(); - } catch (IOException e) { - throw new ServletException("Configuration Error", e); - } - } - @Override protected void doAuthenticatedGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { File tempDir = new File(configuration.getTempDir()); diff --git a/src/main/java/de/devloop/mavor/servlet/Logout.java b/src/main/java/de/devloop/mavor/servlet/Logout.java index b82fba0..99d3f0b 100644 --- a/src/main/java/de/devloop/mavor/servlet/Logout.java +++ b/src/main/java/de/devloop/mavor/servlet/Logout.java @@ -3,7 +3,6 @@ package de.devloop.mavor.servlet; import java.io.IOException; import de.devloop.mavor.AuthenticatedServlet; -import de.devloop.mavor.Configuration; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServletRequest; @@ -12,16 +11,6 @@ import jakarta.servlet.http.HttpSession; @WebServlet("/logout") public class Logout extends AuthenticatedServlet { - private Configuration configuration; - - @Override - public void init() throws ServletException { - try { - configuration = new Configuration(); - } catch (IOException e) { - throw new ServletException("Configuration Error", e); - } - } @Override protected void doAuthenticatedGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {