From 875c08919df92f3b72ac5275855286c86ddb2d3c Mon Sep 17 00:00:00 2001 From: lucio Date: Mon, 30 May 2022 18:32:00 +0200 Subject: [PATCH] added ApplicationManager --- container.ini | 5 ++- logback.xml | 7 ++-- .../java/org/gcube/test/app/MyAppManager.java | 35 +++++++++++++++++++ .../org/gcube/test/app/TestAppServlet.java | 18 ++++++++-- src/main/webapp/WEB-INF/gcube-app.xml | 1 - 5 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 src/main/java/org/gcube/test/app/MyAppManager.java diff --git a/container.ini b/container.ini index 4014816..7ecb0dd 100644 --- a/container.ini +++ b/container.ini @@ -27,13 +27,12 @@ location = rome ;port = 80 [authorization] -; mandatory -; optional fields: provider factory (=org.gcube.smartgears.security.defaults.DefaultAuthorizationProviderFactory) factory = org.gcube.smartgears.security.defaults.DefaultAuthorizationProviderFactory +endpoint = https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/token credentials.class = org.gcube.smartgears.security.SimpleCredentials credentials.clientID = node-whn-test-uno-d-d4s.d4science.org credentials.secret = 979bd3bc-5cc4-11ec-bf63-0242ac130002 -credentials.endpoint = https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/token + ;[persistence] ; not mandatory (default is LocalPersistence writing in the ghn home) diff --git a/logback.xml b/logback.xml index 094d4c7..8143002 100644 --- a/logback.xml +++ b/logback.xml @@ -58,12 +58,13 @@ - + - - + + + diff --git a/src/main/java/org/gcube/test/app/MyAppManager.java b/src/main/java/org/gcube/test/app/MyAppManager.java new file mode 100644 index 0000000..5b4e25c --- /dev/null +++ b/src/main/java/org/gcube/test/app/MyAppManager.java @@ -0,0 +1,35 @@ +package org.gcube.test.app; + +import org.gcube.common.security.providers.SecretManagerProvider; +import org.gcube.smartgears.ApplicationManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MyAppManager implements ApplicationManager { + + Logger logger = LoggerFactory.getLogger(MyAppManager.class); + + private boolean init = false; + + @Override + public void onInit() { + try { + init = true; + logger.info("init called in {}: {}",SecretManagerProvider.instance.get().getContext(), this.init); + }catch (Exception e) { + logger.error("error on init ",e); + } + } + + @Override + public void onShutdown() { + logger.info("shutdown called"); + logger.info("shutdown called in {}: {}",SecretManagerProvider.instance.get().getContext(), this.init); + } + + public boolean isInit() { + return init; + } + + +} \ No newline at end of file diff --git a/src/main/java/org/gcube/test/app/TestAppServlet.java b/src/main/java/org/gcube/test/app/TestAppServlet.java index 10e455e..52754cf 100644 --- a/src/main/java/org/gcube/test/app/TestAppServlet.java +++ b/src/main/java/org/gcube/test/app/TestAppServlet.java @@ -7,10 +7,17 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.gcube.common.security.providers.SecretManagerProvider; +import org.gcube.common.security.secrets.Secret; +import org.gcube.smartgears.ApplicationManagerProvider; +import org.gcube.smartgears.ContextProvider; +import org.gcube.smartgears.annotations.ManagedBy; +import org.gcube.smartgears.context.application.ApplicationContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebServlet(urlPatterns = "/*", name = "testAppServlet") +@ManagedBy(MyAppManager.class) public class TestAppServlet extends HttpServlet { /** @@ -18,15 +25,20 @@ public class TestAppServlet extends HttpServlet { */ private static final long serialVersionUID = 1L; - + // log on behalf of extension private static final Logger log = LoggerFactory.getLogger(TestAppServlet.class); - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { log.info("testApp call received"); - response.getWriter().write("test app started"); + Secret secret = SecretManagerProvider.instance.get(); + String context = secret !=null? secret.getContext():null; + log.info("secret si {} and context {}",secret, context); + + MyAppManager appManager = (MyAppManager)ApplicationManagerProvider.get(MyAppManager.class); + + response.getWriter().write("test app started with initialization "+appManager.isInit() ); } } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/gcube-app.xml b/src/main/webapp/WEB-INF/gcube-app.xml index 91965ff..3a6b572 100644 --- a/src/main/webapp/WEB-INF/gcube-app.xml +++ b/src/main/webapp/WEB-INF/gcube-app.xml @@ -4,5 +4,4 @@ 1.0.0-SNAPSHOT Test webapp - /* \ No newline at end of file