From 08781a5f3a83ce987e76ae763a3901b2728d3732 Mon Sep 17 00:00:00 2001 From: lucio Date: Wed, 22 Jun 2022 18:50:54 +0200 Subject: [PATCH] Profile and App events updated --- .../application/ApplicationConfiguration.java | 4 --- .../BridgedApplicationConfiguration.java | 12 --------- .../DefaultApplicationConfiguration.java | 25 ++++++------------- .../ContainerConfigurationBinder.java | 5 ++-- .../lifecycle/ApplicationProfileManager.java | 1 - .../lifecycle/ContainerProfileManager.java | 1 - .../managers/ApplicationManager.java | 2 +- .../AuthorizationProviderFactory.java | 3 +-- .../DefaultAuthorizationProvider.java | 5 ++++ .../DefaultAuthorizationProviderFactory.java | 23 +++++++++++++++-- src/test/resources/container.ini | 6 ++--- 11 files changed, 42 insertions(+), 45 deletions(-) diff --git a/src/main/java/org/gcube/smartgears/configuration/application/ApplicationConfiguration.java b/src/main/java/org/gcube/smartgears/configuration/application/ApplicationConfiguration.java index 4b9bbaf..50bbaff 100644 --- a/src/main/java/org/gcube/smartgears/configuration/application/ApplicationConfiguration.java +++ b/src/main/java/org/gcube/smartgears/configuration/application/ApplicationConfiguration.java @@ -2,7 +2,6 @@ package org.gcube.smartgears.configuration.application; import java.util.Set; -import org.gcube.smartgears.configuration.ProxyAddress; import org.gcube.smartgears.persistence.PersistenceWriter; /** @@ -83,9 +82,6 @@ public interface ApplicationConfiguration { */ ApplicationConfiguration description(String description); - ProxyAddress proxyAddress(); - - ApplicationConfiguration proxyAddress(ProxyAddress proxyaddress); /** diff --git a/src/main/java/org/gcube/smartgears/configuration/application/BridgedApplicationConfiguration.java b/src/main/java/org/gcube/smartgears/configuration/application/BridgedApplicationConfiguration.java index 7db8345..9bea447 100644 --- a/src/main/java/org/gcube/smartgears/configuration/application/BridgedApplicationConfiguration.java +++ b/src/main/java/org/gcube/smartgears/configuration/application/BridgedApplicationConfiguration.java @@ -2,7 +2,6 @@ package org.gcube.smartgears.configuration.application; import java.util.Set; -import org.gcube.smartgears.configuration.ProxyAddress; import org.gcube.smartgears.configuration.container.ContainerConfiguration; import org.gcube.smartgears.persistence.PersistenceWriter; import org.slf4j.Logger; @@ -74,10 +73,6 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration public String description() { return application.description(); } - - public ProxyAddress proxyAddress() { - return application.proxyAddress(); - } public ApplicationConfiguration description(String description) { return application.description(description); @@ -129,11 +124,4 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration return application.includes(includes); } - @Override - public ApplicationConfiguration proxyAddress(ProxyAddress proxyaddress) { - return application.proxyAddress(proxyaddress); - } - - - } diff --git a/src/main/java/org/gcube/smartgears/configuration/application/DefaultApplicationConfiguration.java b/src/main/java/org/gcube/smartgears/configuration/application/DefaultApplicationConfiguration.java index d211dcf..e091b3b 100644 --- a/src/main/java/org/gcube/smartgears/configuration/application/DefaultApplicationConfiguration.java +++ b/src/main/java/org/gcube/smartgears/configuration/application/DefaultApplicationConfiguration.java @@ -7,6 +7,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; @@ -32,7 +33,10 @@ import org.gcube.smartgears.persistence.PersistenceWriter; public class DefaultApplicationConfiguration implements ApplicationConfiguration { String context; - + + @XmlAttribute(name = "proxied") + private boolean proxied = true; + @XmlElement(name="name" , required=true) @NotNull String name; @@ -47,10 +51,7 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration @XmlElement(name="description") String description=""; - - @IsValid - ProxyAddress proxyAddress; - + @XmlElementRef Set excludes= new LinkedHashSet(); @@ -88,11 +89,7 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration this.context=context; return this; } - - public ProxyAddress proxyAddress() { - return proxyAddress; - } - + @Override public ApplicationConfiguration excludes(Exclude ... excludes) { this.excludes=new HashSet(Arrays.asList(excludes)); @@ -148,7 +145,7 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration @Override public boolean proxied() { - return proxyAddress!=null; + return proxied; } @Override @@ -161,12 +158,6 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration this.persistenceManager=manager; return this; } - - @Override - public ApplicationConfiguration proxyAddress(ProxyAddress proxyaddress) { - this.proxyAddress = proxyaddress; - return this; - } @Override public void validate() { diff --git a/src/main/java/org/gcube/smartgears/configuration/container/ContainerConfigurationBinder.java b/src/main/java/org/gcube/smartgears/configuration/container/ContainerConfigurationBinder.java index 7f34680..1cf98ab 100644 --- a/src/main/java/org/gcube/smartgears/configuration/container/ContainerConfigurationBinder.java +++ b/src/main/java/org/gcube/smartgears/configuration/container/ContainerConfigurationBinder.java @@ -114,7 +114,6 @@ public class ContainerConfigurationBinder { if (authorizationSection != null) { String provider = authorizationSection.get("factory"); - String authEndpoint = authorizationSection.get("endpoint"); AuthorizationProviderFactory authProviderFactory; if (provider!=null) { try { @@ -126,6 +125,8 @@ public class ContainerConfigurationBinder { } else authProviderFactory = new DefaultAuthorizationProviderFactory(); + authorizationSection.to(authProviderFactory, "factory."); + String type = authorizationSection.get("credentials.class"); if (type ==null) @@ -139,7 +140,7 @@ public class ContainerConfigurationBinder { } authorizationSection.to(credentials, "credentials."); - AuthorizationProvider authProvider = authProviderFactory.connect(credentials, authEndpoint); + AuthorizationProvider authProvider = authProviderFactory.connect(credentials); conf.setAuthorizationProvider(authProvider); } diff --git a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ApplicationProfileManager.java b/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ApplicationProfileManager.java index 57477ea..6c28f86 100644 --- a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ApplicationProfileManager.java +++ b/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ApplicationProfileManager.java @@ -66,7 +66,6 @@ public class ApplicationProfileManager extends ApplicationLifecycleHandler { activated(); - schedulePeriodicUpdates(); // note we don't fire profile events, but wait for the final startup // outcome which // will result in a state change. only then we publish and store the diff --git a/src/main/java/org/gcube/smartgears/handlers/container/lifecycle/ContainerProfileManager.java b/src/main/java/org/gcube/smartgears/handlers/container/lifecycle/ContainerProfileManager.java index c29388e..b414098 100644 --- a/src/main/java/org/gcube/smartgears/handlers/container/lifecycle/ContainerProfileManager.java +++ b/src/main/java/org/gcube/smartgears/handlers/container/lifecycle/ContainerProfileManager.java @@ -66,7 +66,6 @@ public class ContainerProfileManager extends ContainerHandler { activated(); - schedulePeriodicUpdates(); // note we don't fire profile events, but wait for the final startup // outcome which // will result in a state change. only then we publish and store the diff --git a/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java b/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java index 579301f..4f3bfe1 100644 --- a/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java +++ b/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java @@ -276,7 +276,7 @@ public class ApplicationManager { public void contextInitialized(ServletContextEvent sce) { log.info("initilizing context {} ",context.name()); - context.events().fire(context.application().getContextPath(), ApplicationLifecycle.activation); + context.events().fire(context, ApplicationLifecycle.activation); log.info("webApp {} initialized ",context.name()); } diff --git a/src/main/java/org/gcube/smartgears/security/AuthorizationProviderFactory.java b/src/main/java/org/gcube/smartgears/security/AuthorizationProviderFactory.java index 6892b20..c18bcd7 100644 --- a/src/main/java/org/gcube/smartgears/security/AuthorizationProviderFactory.java +++ b/src/main/java/org/gcube/smartgears/security/AuthorizationProviderFactory.java @@ -2,7 +2,6 @@ package org.gcube.smartgears.security; public interface AuthorizationProviderFactory { - T connect(Credentials credentials, String endpoint); - + T connect(Credentials credentials); } diff --git a/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProvider.java b/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProvider.java index aae0ede..65363d5 100644 --- a/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProvider.java +++ b/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProvider.java @@ -70,4 +70,9 @@ public class DefaultAuthorizationProvider implements AuthorizationProvider { } + @Deprecated + //TODO: remove when whnManager will be removed + public SimpleCredentials getCredentials() { + return credentials; + } } diff --git a/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProviderFactory.java b/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProviderFactory.java index 9fac9e0..ba7fddf 100644 --- a/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProviderFactory.java +++ b/src/main/java/org/gcube/smartgears/security/defaults/DefaultAuthorizationProviderFactory.java @@ -1,17 +1,36 @@ package org.gcube.smartgears.security.defaults; +import org.gcube.common.validator.annotations.NotEmpty; import org.gcube.smartgears.security.AuthorizationProviderFactory; import org.gcube.smartgears.security.Credentials; import org.gcube.smartgears.security.SimpleCredentials; public class DefaultAuthorizationProviderFactory implements AuthorizationProviderFactory{ + @NotEmpty + private String endpoint; + @Override - public DefaultAuthorizationProvider connect(Credentials credentials, String enpoint) { + public DefaultAuthorizationProvider connect(Credentials credentials) { if (!SimpleCredentials.class.isInstance(credentials)) throw new IllegalArgumentException("invalid credential type passed"); - return new DefaultAuthorizationProvider((SimpleCredentials)credentials, enpoint); + if (this.endpoint == null || this.endpoint.isEmpty()) + throw new IllegalArgumentException("invalid enpoint passed"); + return new DefaultAuthorizationProvider((SimpleCredentials)credentials, this.endpoint); } + @Override + public String toString() { + return "DefaultAuthorizationProviderFactory [endpoint=" + endpoint + "]"; + } + + public String getEndpoint() { + return endpoint; + } + + public void setEndpoint(String endpoint) { + this.endpoint = endpoint; + } + } diff --git a/src/test/resources/container.ini b/src/test/resources/container.ini index b0ec5b3..8319c5c 100644 --- a/src/test/resources/container.ini +++ b/src/test/resources/container.ini @@ -11,12 +11,11 @@ publicationFrequencyInSeconds = 60 [properties] ; not mandatory -SmartGearsDistribution = 0.0.1 +SmartGearsDistribution = 1.0.0 SmartGearsDistributionBundle = UnBundled [site] ; mandatory -; optional fields: latitude, logitude country = it location = rome @@ -26,11 +25,12 @@ location = rome ;hostname = proxy ;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 +factory.endpoint = https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/token credentials.class = org.gcube.smartgears.security.SimpleCredentials credentials.clientID = testClient credentials.secret = testSecret