branch feature/7463-3 updated (df6e99c -> 695639a)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git from df6e99c Ajout de FIXME à corriger plus tard new 608d4f3 Revue de l'init d'une base sur l'application web new 7fdf68a Possibilité d'utiliser la connexion pour obtenir un service new 09c2923 Le test de ping refonctionne new 884b8d8 Ajout de fixme sur le test de DatasourceService car la gestion d'esxception n'est pas encore gérée au niveau du serveur web new 69296b9 On ne soumet dans le header que le jeton de securite new 695639a Simplification de la sécurité + Gestion des erreurs au niveau du serveur web (reste à gérer le retour dans le client REST) The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 695639ac672ebe6e7982244131b53dce70be714e Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 23:47:48 2015 +0200 Simplification de la sécurité + Gestion des erreurs au niveau du serveur web (reste à gérer le retour dans le client REST) commit 69296b99cded0ad358f8564815cd4fc97e0ed641 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 23:47:12 2015 +0200 On ne soumet dans le header que le jeton de securite commit 884b8d89f03e7a6e10e0f87b9895dc99a627f122 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 22:15:24 2015 +0200 Ajout de fixme sur le test de DatasourceService car la gestion d'esxception n'est pas encore gérée au niveau du serveur web commit 09c29230b4bc78ffbde4e678a0d8ef3e336daacf Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 22:14:40 2015 +0200 Le test de ping refonctionne commit 7fdf68af1a56256c148dd00e815e1721fdd61432 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 22:03:30 2015 +0200 Possibilité d'utiliser la connexion pour obtenir un service commit 608d4f30ed957ac49ad0416b1557c3a3aaf12dc5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 21:58:40 2015 +0200 Revue de l'init d'une base sur l'application web Summary of changes: .../web/ObserveWebApplicationListener.java | 2 +- .../application/web/ObserveWebMotionFilter.java | 63 ++------------ .../web/controller/ObserveWebMotionController.java | 13 ++- .../web/controller/v1/ConfigurationController.java | 2 +- .../controller/v1/DataSourceServiceController.java | 49 +++++++---- ...serveAuthenticatedServiceControllerSupport.java | 30 +++++++ .../v1/ObserveServiceControllerSupport.java | 54 ++++++++++-- .../controller/v1/ObserveWebErrorController.java | 97 ++++++++++++++++++++++ .../v1/ReferentialServiceController.java | 9 +- .../ConsolidateDataServiceController.java | 4 +- .../v1/actions/report/ReportServiceController.java | 4 +- .../validate/ValidateServiceController.java | 4 +- .../ActivityLongLineEncouterServiceController.java | 4 +- ...ctivityLongLineSensorUsedServiceController.java | 4 +- .../ActivityLonglineServiceController.java | 4 +- .../GearUseFeaturesLonglineServiceController.java | 4 +- .../SetLonglineCatchServiceController.java | 4 +- ...LonglineDetailCompositionServiceController.java | 4 +- ...LonglineGlobalCompositionServiceController.java | 4 +- .../v1/longline/SetLonglineServiceController.java | 4 +- .../v1/longline/TdrServiceController.java | 4 +- .../v1/longline/TripLonglineServiceController.java | 4 +- ...tivitySeineObservedSystemServiceController.java | 4 +- .../v1/seine/ActivitySeineServiceController.java | 4 +- .../v1/seine/FloatingObjectServiceController.java | 4 +- .../GearUseFeaturesSeineServiceController.java | 4 +- .../v1/seine/NonTargetCatchServiceController.java | 4 +- .../v1/seine/NonTargetSampleServiceController.java | 4 +- .../ObjectObservedSpeciesServiceController.java | 4 +- .../ObjectSchoolEstimateServiceController.java | 4 +- .../v1/seine/RouteServiceController.java | 4 +- .../v1/seine/SchoolEstimateServiceController.java | 4 +- .../v1/seine/SetSeineServiceController.java | 4 +- .../v1/seine/TargetCatchServiceController.java | 4 +- .../v1/seine/TargetSampleServiceController.java | 4 +- ...TransmittingBuoyOperationServiceController.java | 4 +- .../v1/seine/TripSeineServiceController.java | 4 +- .../ObserveDataSourceConfigurationInjector.java | 24 ++++-- .../web/request/ObserveWebRequestContext.java | 70 ++++++---------- .../request/ObserveWebRequestSecurityContext.java | 62 -------------- .../web/security/AdminApiKeyNotFoundException.java | 11 +++ .../AuthenticationTokenNotFoundException.java | 11 +++ .../BadObserveWebUserPasswordException.java | 5 +- .../InvalidAdminKeyApiException.java | 4 +- .../InvalidAuthenticationTokenException.java | 2 +- .../ObserveWebSecurityApplicationContext.java | 13 ++- .../ObserveWebSecurityExceptionSupport.java | 26 ++++++ .../SecurityRequestContextNotFoundException.java | 11 +++ .../security/UnknownObserveWebUserException.java | 4 +- .../UnknownObserveWebUserForDatabaseException.java | 3 +- .../web/security/UserLoginNotFoundException.java | 11 +++ .../security/UserPasswordNotFoundException.java | 11 +++ observe-application-web/src/main/resources/mapping | 3 + .../ObserveDataSourceConfigurationRest.java | 12 +++ ...bserveDataSourceConfigurationRestConstants.java | 6 -- .../services/ObserveServiceFactoryRest.java | 15 +--- .../fr/ird/observe/services/TestClassResource.java | 11 +++ .../service/DataSourceServiceRestTest.java | 10 ++- .../services/service/PingServiceRestTest.java | 3 - .../service/seine/TripSeineServiceTest.java | 27 +++++- .../services/ObserveServiceMainFactory.java | 16 +++- 61 files changed, 502 insertions(+), 300 deletions(-) create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveAuthenticatedServiceControllerSupport.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveWebErrorController.java delete mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/AdminApiKeyNotFoundException.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/AuthenticationTokenNotFoundException.java rename observe-application-web/src/main/java/fr/ird/observe/application/web/{ => security}/InvalidAdminKeyApiException.java (72%) create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityExceptionSupport.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/SecurityRequestContextNotFoundException.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserLoginNotFoundException.java create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserPasswordNotFoundException.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 608d4f30ed957ac49ad0416b1557c3a3aaf12dc5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 21:58:40 2015 +0200 Revue de l'init d'une base sur l'application web --- .../web/ObserveWebApplicationListener.java | 2 +- .../application/web/ObserveWebMotionFilter.java | 23 +++------ .../web/controller/ObserveWebMotionController.java | 13 +++--- .../controller/v1/DataSourceServiceController.java | 52 +++++++++++++++------ ...serveAuthenticatedServiceControllerSupport.java | 30 ++++++++++++ .../v1/ObserveServiceControllerSupport.java | 54 +++++++++++++++++++--- .../v1/ReferentialServiceController.java | 2 +- .../ConsolidateDataServiceController.java | 4 +- .../v1/actions/report/ReportServiceController.java | 4 +- .../validate/ValidateServiceController.java | 4 +- .../ActivityLongLineEncouterServiceController.java | 4 +- ...ctivityLongLineSensorUsedServiceController.java | 4 +- .../ActivityLonglineServiceController.java | 4 +- .../GearUseFeaturesLonglineServiceController.java | 4 +- .../SetLonglineCatchServiceController.java | 4 +- ...LonglineDetailCompositionServiceController.java | 4 +- ...LonglineGlobalCompositionServiceController.java | 4 +- .../v1/longline/SetLonglineServiceController.java | 4 +- .../v1/longline/TdrServiceController.java | 4 +- .../v1/longline/TripLonglineServiceController.java | 4 +- ...tivitySeineObservedSystemServiceController.java | 4 +- .../v1/seine/ActivitySeineServiceController.java | 4 +- .../v1/seine/FloatingObjectServiceController.java | 4 +- .../GearUseFeaturesSeineServiceController.java | 4 +- .../v1/seine/NonTargetCatchServiceController.java | 4 +- .../v1/seine/NonTargetSampleServiceController.java | 4 +- .../ObjectObservedSpeciesServiceController.java | 4 +- .../ObjectSchoolEstimateServiceController.java | 4 +- .../v1/seine/RouteServiceController.java | 4 +- .../v1/seine/SchoolEstimateServiceController.java | 4 +- .../v1/seine/SetSeineServiceController.java | 4 +- .../v1/seine/TargetCatchServiceController.java | 4 +- .../v1/seine/TargetSampleServiceController.java | 4 +- ...TransmittingBuoyOperationServiceController.java | 4 +- .../v1/seine/TripSeineServiceController.java | 4 +- .../ObserveDataSourceConfigurationInjector.java | 24 ++++++++-- .../web/request/ObserveWebRequestContext.java | 25 +++++----- .../request/ObserveWebRequestSecurityContext.java | 20 +++----- .../BadObserveWebUserPasswordException.java | 5 +- .../InvalidAuthenticationTokenException.java | 2 +- .../security/UnknownObserveWebUserException.java | 4 +- .../UnknownObserveWebUserForDatabaseException.java | 3 +- 42 files changed, 230 insertions(+), 141 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java index eedbd98..d6b357d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java @@ -35,7 +35,7 @@ public class ObserveWebApplicationListener implements WebMotionServerListener { Gson gson = applicationContext.getGsonSupplier().get(); - context.addInjector(new ObserveDataSourceConfigurationInjector()); + context.addInjector(new ObserveDataSourceConfigurationInjector(gson)); context.addInjector(new IdDtoInjector(gson)); context.addInjector(new FormDtoInjector(gson)); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java index 72dad1b..b67c3fc 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java @@ -1,19 +1,15 @@ package fr.ird.observe.application.web; -import com.google.common.base.Optional; import fr.ird.observe.application.web.request.ObserveWebRequestContext; import fr.ird.observe.application.web.request.ObserveWebRequestSecurityContext; import fr.ird.observe.application.web.security.BadObserveWebUserPasswordException; import fr.ird.observe.application.web.security.InvalidAuthenticationTokenException; -import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; import fr.ird.observe.application.web.security.UnknownObserveWebUserException; import fr.ird.observe.application.web.security.UnknownObserveWebUserForDatabaseException; -import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestConstants; import fr.ird.observe.services.dto.constants.ReferentialLocale; import org.apache.commons.lang3.StringUtils; import org.debux.webmotion.server.WebMotionFilter; -import org.debux.webmotion.server.call.Call; import org.debux.webmotion.server.call.HttpContext; import org.nuiton.converter.ConverterUtil; @@ -25,13 +21,13 @@ import java.util.Locale; */ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDataSourceConfigurationRestConstants { - public void inject(HttpContext context, Call call) throws InvalidAuthenticationTokenException, UnknownObserveWebUserException, BadObserveWebUserPasswordException, UnknownObserveWebUserForDatabaseException, InvalidAdminKeyApiException { + public void inject(HttpContext context) throws InvalidAuthenticationTokenException, UnknownObserveWebUserException, BadObserveWebUserPasswordException, UnknownObserveWebUserForDatabaseException, InvalidAdminKeyApiException { ObserveWebApplicationContext applicationContext = ObserveWebApplicationContext.getApplicationContext(context); HttpServletRequest request = context.getRequest(); - ObserveWebRequestSecurityContext securityContext = createSecurityContext(applicationContext, request, call); + ObserveWebRequestSecurityContext securityContext = createSecurityContext(request); Locale applicationLocale = getApplicationLocale(request); ReferentialLocale referentialLocale = getReferentialLocale(request); @@ -75,19 +71,15 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa } - //FIXME Il ne faut pas chercher à récuperer dans securityContext des informations si le service (ou la méthode du service) est annotée NoDataAccess - //FIXME On fera la transformation et recherche de la sécurité alors plus tard au niveau du serviceController - protected ObserveWebRequestSecurityContext createSecurityContext(ObserveWebApplicationContext applicationContext, HttpServletRequest request, Call call) throws InvalidAuthenticationTokenException, UnknownObserveWebUserForDatabaseException, BadObserveWebUserPasswordException, UnknownObserveWebUserException { + protected ObserveWebRequestSecurityContext createSecurityContext(HttpServletRequest request) throws InvalidAuthenticationTokenException, UnknownObserveWebUserForDatabaseException, BadObserveWebUserPasswordException, UnknownObserveWebUserException { ObserveWebRequestSecurityContext securityContext = null; + String authenticationToken = getRequestHeaderOrParameterValueOrNull(request, REQUEST_AUTHENTICATION_TOKEN); if (StringUtils.isNotBlank(authenticationToken)) { - // Recherche de la configuration à la source de donnée + securityContext = ObserveWebRequestSecurityContext.createAuthenticated(authenticationToken); - ObserveWebSecurityApplicationContext securityApplicationContext = applicationContext.getSecurityApplicationContext(); - ObserveDataSourceConfiguration dataSourceConfiguration = securityApplicationContext.getDataSourceConfiguration(authenticationToken); - securityContext = ObserveWebRequestSecurityContext.createAuthenticated(dataSourceConfiguration, authenticationToken); } else { // Cas où on l'utilisateur n'est pas connecté @@ -98,10 +90,7 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa if (!(userLogin == null && userPassword == null)) { - // On recherche une configuration de source de données à partir de l'identité de l'utilisateur - ObserveWebSecurityApplicationContext securityApplicationContext = applicationContext.getSecurityApplicationContext(); - ObserveDataSourceConfiguration dataSourceConfiguration = securityApplicationContext.getDataSourceConfiguration(userLogin, userPassword, Optional.fromNullable(userDatabaseName)); - securityContext = ObserveWebRequestSecurityContext.create(dataSourceConfiguration, userLogin, userPassword, userDatabaseName); + securityContext = ObserveWebRequestSecurityContext.create(userLogin, userPassword, userDatabaseName); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/ObserveWebMotionController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/ObserveWebMotionController.java index 7e004a6..c2ef186 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/ObserveWebMotionController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/ObserveWebMotionController.java @@ -4,7 +4,6 @@ import fr.ird.observe.application.web.ObserveWebApplicationContext; import fr.ird.observe.application.web.configuration.ObserveWebApplicationConfiguration; import fr.ird.observe.application.web.request.ObserveWebRequestContext; import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; -import fr.ird.observe.services.ObserveService; import org.debux.webmotion.server.WebMotionController; /** @@ -28,11 +27,11 @@ public abstract class ObserveWebMotionController extends WebMotionController { return ObserveWebRequestContext.getRequestContext(getContext()); } - public <S extends ObserveService> S newService(Class<S> serviceType) { - ObserveWebRequestContext requestContext = getRequestContext(); - - S service = requestContext.newService(serviceType); - return service; - } +// public <S extends ObserveService> S newService(Class<S> serviceType) { +// ObserveWebRequestContext requestContext = getRequestContext(); +// +// S service = requestContext.newService(serviceType); +// return service; +// } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index 047c840..9d0728c 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -1,7 +1,12 @@ package fr.ird.observe.application.web.controller.v1; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.rometools.utils.Strings; import fr.ird.observe.application.web.request.ObserveWebRequestContext; +import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.ObserveDataSourceConnectionRest; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; @@ -29,15 +34,20 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport @Override public void checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - service.checkCanConnect(dataSourceConfiguration); + + ObserveDataSourceConfiguration dataSourceConfigurationTopia = getTopiaDataSourceConfiguration(dataSourceConfiguration); + + getAnonymousService(dataSourceConfigurationTopia).checkCanConnect(dataSourceConfigurationTopia); } @Override public ObserveDataSourceConnectionRest create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { - ObserveDataSourceConnection observeDataSourceConnection = service.create(dataSourceConfiguration, dataSourceCreateConfiguration); + ObserveDataSourceConfiguration dataSourceConfigurationTopia = getTopiaDataSourceConfiguration(dataSourceConfiguration); - String authenticationToken = registerDataSourceConfiguration(); + ObserveDataSourceConnection observeDataSourceConnection = getAnonymousService(dataSourceConfigurationTopia).create(dataSourceConfigurationTopia, dataSourceCreateConfiguration); + + String authenticationToken = registerDataSourceConfiguration(dataSourceConfigurationTopia); ObserveDataSourceConnectionRest dataSourceConnection = createDataSourceConnection(observeDataSourceConnection, authenticationToken); return dataSourceConnection; @@ -46,9 +56,11 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport @Override public ObserveDataSourceConnectionRest open(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException { - ObserveDataSourceConnection observeDataSourceConnection = service.open(dataSourceConfiguration); + ObserveDataSourceConfiguration dataSourceConfigurationTopia = getTopiaDataSourceConfiguration(dataSourceConfiguration); + + ObserveDataSourceConnection observeDataSourceConnection = getAnonymousService(dataSourceConfigurationTopia).open(dataSourceConfigurationTopia); - String authenticationToken = registerDataSourceConfiguration(); + String authenticationToken = registerDataSourceConfiguration(dataSourceConfigurationTopia); ObserveDataSourceConnectionRest dataSourceConnection = createDataSourceConnection(observeDataSourceConnection, authenticationToken); return dataSourceConnection; @@ -57,11 +69,9 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport @Override public void close() { - ObserveWebRequestContext requestContext = getRequestContext(); - requestContext.checkIsAuthenticated(); - - service.close(); + getAuthenticatedService().close(); + ObserveWebRequestContext requestContext = getRequestContext(); String authenticationToken = requestContext.getAuthenticationToken(); getSecurityApplicationContext().invalidateAuthenticationToken(authenticationToken); if (log.isInfoEnabled()) { @@ -72,17 +82,31 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport @Override public void destroy() { - service.destroy(); + getAuthenticatedService().destroy(); } - protected String registerDataSourceConfiguration() { + protected ObserveDataSourceConfiguration getTopiaDataSourceConfiguration(ObserveDataSourceConfiguration dataSourceConfigurationFromRequest) { - ObserveWebRequestContext requestContext = getRequestContext(); + Preconditions.checkArgument(dataSourceConfigurationFromRequest instanceof ObserveDataSourceConfigurationRest); + ObserveDataSourceConfigurationRest dataSourceConfigurationRest = (ObserveDataSourceConfigurationRest) dataSourceConfigurationFromRequest; - ObserveDataSourceConfiguration dataSourceConfiguration = requestContext.getDataSourceConfiguration(); + String login = dataSourceConfigurationRest.getLogin(); + Preconditions.checkState(Strings.isNotEmpty(login), "Pas de login fournit"); - String authenticationToken = getSecurityApplicationContext().registerDataSourceConfiguration(dataSourceConfiguration); + String password = new String(dataSourceConfigurationRest.getPassword()); + Preconditions.checkState(Strings.isNotEmpty(password), "Pas de mot de passe fournit"); + + Optional<String> optionalDatabaseName = dataSourceConfigurationRest.getOptionalDatabaseName(); + ObserveWebSecurityApplicationContext securityApplicationContext = getSecurityApplicationContext(); + ObserveDataSourceConfiguration dataSourceConfiguration = securityApplicationContext.getDataSourceConfiguration(login, password, optionalDatabaseName); + return dataSourceConfiguration; + + } + + protected String registerDataSourceConfiguration(ObserveDataSourceConfiguration dataSourceConfiguration) { + + String authenticationToken = getSecurityApplicationContext().registerDataSourceConfiguration(dataSourceConfiguration); return authenticationToken; } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveAuthenticatedServiceControllerSupport.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveAuthenticatedServiceControllerSupport.java new file mode 100644 index 0000000..1820aff --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveAuthenticatedServiceControllerSupport.java @@ -0,0 +1,30 @@ +package fr.ird.observe.application.web.controller.v1; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import org.debux.webmotion.server.WebMotionContextable; + +/** + * Created on 30/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class ObserveAuthenticatedServiceControllerSupport<S extends ObserveService> extends ObserveServiceControllerSupport<S> { + + protected S service; + + protected ObserveAuthenticatedServiceControllerSupport(Class<S> serviceType) { + super(serviceType); + } + + @Override + public void setContextable(WebMotionContextable contextable) { + super.setContextable(contextable); + service = getAuthenticatedService(); + } + + protected S getAnonymousService(ObserveDataSourceConfiguration dataSourceConfiguration) { + throw new IllegalStateException("Can't get an anonymous service from this class"); + } + +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveServiceControllerSupport.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveServiceControllerSupport.java index 786c8a2..057e0de 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveServiceControllerSupport.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveServiceControllerSupport.java @@ -1,8 +1,14 @@ package fr.ird.observe.application.web.controller.v1; +import com.google.common.base.Preconditions; import fr.ird.observe.application.web.controller.ObserveWebMotionController; +import fr.ird.observe.application.web.request.ObserveWebRequestContext; +import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; import fr.ird.observe.services.ObserveService; -import org.debux.webmotion.server.WebMotionContextable; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.spi.NoDataAccess; + +import java.lang.reflect.Method; /** * Created on 30/08/15. @@ -11,18 +17,52 @@ import org.debux.webmotion.server.WebMotionContextable; */ public abstract class ObserveServiceControllerSupport<S extends ObserveService> extends ObserveWebMotionController implements ObserveService { - protected S service; - protected final Class<S> serviceType; protected ObserveServiceControllerSupport(Class<S> serviceType) { this.serviceType = serviceType; } - @Override - public void setContextable(WebMotionContextable contextable) { - super.setContextable(contextable); - service = newService(serviceType); + protected S getAuthenticatedService() { + + Method method = contextable.getCall().getCurrent().getMethod(); + Method serviceTypeMethod = getServiceMethod(method); + boolean requiredAuthentication = serviceTypeMethod.getAnnotation(NoDataAccess.class) == null; + Preconditions.checkState(requiredAuthentication, "Vous avez demandé un service authentifié, alors que l'annotation " + NoDataAccess.class.getName() + " est présente sur la méthode du service"); + + ObserveWebRequestContext requestContext = getRequestContext(); + + // On récupère le jeton d'authentification + String authenticationToken = requestContext.getAuthenticationToken(); + + // On recherche la source de données associée + ObserveWebSecurityApplicationContext securityApplicationContext = getSecurityApplicationContext(); + ObserveDataSourceConfiguration dataSourceConfiguration = securityApplicationContext.getDataSourceConfiguration(authenticationToken); + + S service = requestContext.newService(serviceType, dataSourceConfiguration); + + return service; + } + + protected S getAnonymousService(ObserveDataSourceConfiguration dataSourceConfiguration) { + + Method method = contextable.getCall().getCurrent().getMethod(); + Method serviceTypeMethod = getServiceMethod(method); + boolean requiredAuthentication = serviceTypeMethod.getAnnotation(NoDataAccess.class) == null; + Preconditions.checkState(!requiredAuthentication, "Vous avez demandé un service anonyme, alors que l'annotation " + NoDataAccess.class.getName() + " n'est pas présente sur la méthode du service"); + + ObserveWebRequestContext requestContext = getRequestContext(); + S service = requestContext.newService(serviceType, dataSourceConfiguration); + + return service; + } + + protected Method getServiceMethod(Method method) { + try { + return serviceType.getMethod(method.getName(), method.getParameterTypes()); + } catch (NoSuchMethodException e) { + throw new IllegalStateException("Can't happen!"); + } } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 1901580..678425a 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -14,7 +14,7 @@ import java.util.Collection; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialServiceController extends ObserveServiceControllerSupport<ReferentialService> implements ReferentialService { +public class ReferentialServiceController extends ObserveAuthenticatedServiceControllerSupport<ReferentialService> implements ReferentialService { public ReferentialServiceController() { super(ReferentialService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java index a0a12f6..803d41a 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java @@ -1,7 +1,7 @@ package fr.ird.observe.application.web.controller.v1.actions.consolidate; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineDataRequest; import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineDataResult; @@ -9,7 +9,7 @@ import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineD /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ConsolidateDataServiceController extends ObserveServiceControllerSupport<ConsolidateDataService> implements ConsolidateDataService { +public class ConsolidateDataServiceController extends ObserveAuthenticatedServiceControllerSupport<ConsolidateDataService> implements ConsolidateDataService { public ConsolidateDataServiceController() { super(ConsolidateDataService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java index d355911..f41c17f 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.actions.report; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.report.model.DataMatrix; import fr.ird.observe.services.service.actions.report.model.Report; @@ -11,7 +11,7 @@ import java.util.Map; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ReportServiceController extends ObserveServiceControllerSupport<ReportService> implements ReportService { +public class ReportServiceController extends ObserveAuthenticatedServiceControllerSupport<ReportService> implements ReportService { public ReportServiceController() { super(ReportService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/validate/ValidateServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/validate/ValidateServiceController.java index 259d464..6ba8796 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/validate/ValidateServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/validate/ValidateServiceController.java @@ -1,7 +1,7 @@ package fr.ird.observe.application.web.controller.v1.actions.validate; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.service.actions.validate.ValidateDataRequest; import fr.ird.observe.services.service.actions.validate.ValidateDataResult; import fr.ird.observe.services.service.actions.validate.ValidateReferentialsRequest; @@ -11,7 +11,7 @@ import fr.ird.observe.services.service.actions.validate.ValidateService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ValidateServiceController extends ObserveServiceControllerSupport<ValidateService> implements ValidateService { +public class ValidateServiceController extends ObserveAuthenticatedServiceControllerSupport<ValidateService> implements ValidateService { public ValidateServiceController() { super(ValidateService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineEncouterServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineEncouterServiceController.java index 8ebfc1e..7a25d00 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineEncouterServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineEncouterServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; import fr.ird.observe.services.service.longline.ActivityLongLineEncouterService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.ActivityLongLineEncouterService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ActivityLongLineEncouterServiceController extends ObserveServiceControllerSupport<ActivityLongLineEncouterService> implements ActivityLongLineEncouterService { +public class ActivityLongLineEncouterServiceController extends ObserveAuthenticatedServiceControllerSupport<ActivityLongLineEncouterService> implements ActivityLongLineEncouterService { public ActivityLongLineEncouterServiceController() { super(ActivityLongLineEncouterService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineSensorUsedServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineSensorUsedServiceController.java index 96095f7..fb7f4e3 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineSensorUsedServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLongLineSensorUsedServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; import fr.ird.observe.services.service.longline.ActivityLongLineSensorUsedService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.ActivityLongLineSensorUsedServic /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ActivityLongLineSensorUsedServiceController extends ObserveServiceControllerSupport<ActivityLongLineSensorUsedService> implements ActivityLongLineSensorUsedService { +public class ActivityLongLineSensorUsedServiceController extends ObserveAuthenticatedServiceControllerSupport<ActivityLongLineSensorUsedService> implements ActivityLongLineSensorUsedService { public ActivityLongLineSensorUsedServiceController() { super(ActivityLongLineSensorUsedService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java index 1719c6f..cd2ef6d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.ActivityLonglineStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ActivityLonglineServiceController extends ObserveServiceControllerSupport<ActivityLonglineService> implements ActivityLonglineService { +public class ActivityLonglineServiceController extends ObserveAuthenticatedServiceControllerSupport<ActivityLonglineService> implements ActivityLonglineService { public ActivityLonglineServiceController() { super(ActivityLonglineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/GearUseFeaturesLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/GearUseFeaturesLonglineServiceController.java index 76b3bee..fda676c 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/GearUseFeaturesLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/GearUseFeaturesLonglineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.service.longline.GearUseFeaturesLonglineService; @@ -10,7 +10,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class GearUseFeaturesLonglineServiceController extends ObserveServiceControllerSupport<GearUseFeaturesLonglineService> implements GearUseFeaturesLonglineService { +public class GearUseFeaturesLonglineServiceController extends ObserveAuthenticatedServiceControllerSupport<GearUseFeaturesLonglineService> implements GearUseFeaturesLonglineService { public GearUseFeaturesLonglineServiceController() { super(GearUseFeaturesLonglineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineCatchServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineCatchServiceController.java index ddfed98..816e760 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineCatchServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineCatchServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import fr.ird.observe.services.service.longline.SetLonglineCatchService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.SetLonglineCatchService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SetLonglineCatchServiceController extends ObserveServiceControllerSupport<SetLonglineCatchService> implements SetLonglineCatchService { +public class SetLonglineCatchServiceController extends ObserveAuthenticatedServiceControllerSupport<SetLonglineCatchService> implements SetLonglineCatchService { public SetLonglineCatchServiceController() { super(SetLonglineCatchService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineDetailCompositionServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineDetailCompositionServiceController.java index 482bc47..b6174fc 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineDetailCompositionServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineDetailCompositionServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.services.service.longline.SetLonglineDetailCompositionService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.SetLonglineDetailCompositionServ /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SetLonglineDetailCompositionServiceController extends ObserveServiceControllerSupport<SetLonglineDetailCompositionService> implements SetLonglineDetailCompositionService { +public class SetLonglineDetailCompositionServiceController extends ObserveAuthenticatedServiceControllerSupport<SetLonglineDetailCompositionService> implements SetLonglineDetailCompositionService { public SetLonglineDetailCompositionServiceController() { super(SetLonglineDetailCompositionService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineGlobalCompositionServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineGlobalCompositionServiceController.java index be89c9f..2bfa94d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineGlobalCompositionServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineGlobalCompositionServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.service.longline.SetLonglineGlobalCompositionService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.SetLonglineGlobalCompositionServ /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SetLonglineGlobalCompositionServiceController extends ObserveServiceControllerSupport<SetLonglineGlobalCompositionService> implements SetLonglineGlobalCompositionService { +public class SetLonglineGlobalCompositionServiceController extends ObserveAuthenticatedServiceControllerSupport<SetLonglineGlobalCompositionService> implements SetLonglineGlobalCompositionService { public SetLonglineGlobalCompositionServiceController() { super(SetLonglineGlobalCompositionService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineServiceController.java index 0472ce7..6e967dc 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/SetLonglineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.service.longline.SetLonglineService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.SetLonglineService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SetLonglineServiceController extends ObserveServiceControllerSupport<SetLonglineService> implements SetLonglineService { +public class SetLonglineServiceController extends ObserveAuthenticatedServiceControllerSupport<SetLonglineService> implements SetLonglineService { public SetLonglineServiceController() { super(SetLonglineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TdrServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TdrServiceController.java index 04dd895..3a2c01f 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TdrServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TdrServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.service.longline.TdrService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.longline.TdrService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TdrServiceController extends ObserveServiceControllerSupport<TdrService> implements TdrService { +public class TdrServiceController extends ObserveAuthenticatedServiceControllerSupport<TdrService> implements TdrService { public TdrServiceController() { super(TdrService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java index ef72aab..6da7d22 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.longline; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TripLonglineServiceController extends ObserveServiceControllerSupport<TripLonglineService> implements TripLonglineService { +public class TripLonglineServiceController extends ObserveAuthenticatedServiceControllerSupport<TripLonglineService> implements TripLonglineService { public TripLonglineServiceController() { super(TripLonglineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineObservedSystemServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineObservedSystemServiceController.java index ef4e749..d48c1ca 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineObservedSystemServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineObservedSystemServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import fr.ird.observe.services.service.seine.ActivitySeineObservedSystemService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.ActivitySeineObservedSystemService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ActivitySeineObservedSystemServiceController extends ObserveServiceControllerSupport<ActivitySeineObservedSystemService> implements ActivitySeineObservedSystemService { +public class ActivitySeineObservedSystemServiceController extends ObserveAuthenticatedServiceControllerSupport<ActivitySeineObservedSystemService> implements ActivitySeineObservedSystemService { public ActivitySeineObservedSystemServiceController() { super(ActivitySeineObservedSystemService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java index d8090b6..1a22b29 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ActivitySeineServiceController extends ObserveServiceControllerSupport<ActivitySeineService> implements ActivitySeineService { +public class ActivitySeineServiceController extends ObserveAuthenticatedServiceControllerSupport<ActivitySeineService> implements ActivitySeineService { public ActivitySeineServiceController() { super(ActivitySeineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/FloatingObjectServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/FloatingObjectServiceController.java index 0a6c5ab..4228948 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/FloatingObjectServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/FloatingObjectServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.FloatingObjectStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class FloatingObjectServiceController extends ObserveServiceControllerSupport<FloatingObjectService> implements FloatingObjectService { +public class FloatingObjectServiceController extends ObserveAuthenticatedServiceControllerSupport<FloatingObjectService> implements FloatingObjectService { public FloatingObjectServiceController() { super(FloatingObjectService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java index 8e554b8..d35f6bc 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.service.seine.GearUseFeaturesSeineService; @@ -10,7 +10,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class GearUseFeaturesSeineServiceController extends ObserveServiceControllerSupport<GearUseFeaturesSeineService> implements GearUseFeaturesSeineService { +public class GearUseFeaturesSeineServiceController extends ObserveAuthenticatedServiceControllerSupport<GearUseFeaturesSeineService> implements GearUseFeaturesSeineService { public GearUseFeaturesSeineServiceController() { super(GearUseFeaturesSeineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetCatchServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetCatchServiceController.java index 8bc43a5..8e3da49 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetCatchServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetCatchServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; import fr.ird.observe.services.service.seine.NonTargetCatchService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.NonTargetCatchService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class NonTargetCatchServiceController extends ObserveServiceControllerSupport<NonTargetCatchService> implements NonTargetCatchService { +public class NonTargetCatchServiceController extends ObserveAuthenticatedServiceControllerSupport<NonTargetCatchService> implements NonTargetCatchService { public NonTargetCatchServiceController() { super(NonTargetCatchService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java index 739ffe9..c045729 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.service.seine.NonTargetSampleService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.NonTargetSampleService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class NonTargetSampleServiceController extends ObserveServiceControllerSupport<NonTargetSampleService> implements NonTargetSampleService { +public class NonTargetSampleServiceController extends ObserveAuthenticatedServiceControllerSupport<NonTargetSampleService> implements NonTargetSampleService { public NonTargetSampleServiceController() { super(NonTargetSampleService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectObservedSpeciesServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectObservedSpeciesServiceController.java index ad80bd6..0a1bbb9 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectObservedSpeciesServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectObservedSpeciesServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; import fr.ird.observe.services.service.seine.ObjectObservedSpeciesService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.ObjectObservedSpeciesService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ObjectObservedSpeciesServiceController extends ObserveServiceControllerSupport<ObjectObservedSpeciesService> implements ObjectObservedSpeciesService { +public class ObjectObservedSpeciesServiceController extends ObserveAuthenticatedServiceControllerSupport<ObjectObservedSpeciesService> implements ObjectObservedSpeciesService { public ObjectObservedSpeciesServiceController() { super(ObjectObservedSpeciesService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectSchoolEstimateServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectSchoolEstimateServiceController.java index c72d496..480b179 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectSchoolEstimateServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ObjectSchoolEstimateServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; import fr.ird.observe.services.service.seine.ObjectSchoolEstimateService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.ObjectSchoolEstimateService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ObjectSchoolEstimateServiceController extends ObserveServiceControllerSupport<ObjectSchoolEstimateService> implements ObjectSchoolEstimateService { +public class ObjectSchoolEstimateServiceController extends ObserveAuthenticatedServiceControllerSupport<ObjectSchoolEstimateService> implements ObjectSchoolEstimateService { public ObjectSchoolEstimateServiceController() { super(ObjectSchoolEstimateService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/RouteServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/RouteServiceController.java index 4e1ac4b..b7b09f9 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/RouteServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/RouteServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.RouteStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class RouteServiceController extends ObserveServiceControllerSupport<RouteService> implements RouteService { +public class RouteServiceController extends ObserveAuthenticatedServiceControllerSupport<RouteService> implements RouteService { public RouteServiceController() { super(RouteService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SchoolEstimateServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SchoolEstimateServiceController.java index ba2485f..97949a5 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SchoolEstimateServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SchoolEstimateServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; import fr.ird.observe.services.service.seine.SchoolEstimateService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.SchoolEstimateService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SchoolEstimateServiceController extends ObserveServiceControllerSupport<SchoolEstimateService> implements SchoolEstimateService { +public class SchoolEstimateServiceController extends ObserveAuthenticatedServiceControllerSupport<SchoolEstimateService> implements SchoolEstimateService { public SchoolEstimateServiceController() { super(SchoolEstimateService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SetSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SetSeineServiceController.java index 65250e0..0fad181 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SetSeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/SetSeineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.service.seine.SetSeineService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.SetSeineService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class SetSeineServiceController extends ObserveServiceControllerSupport<SetSeineService> implements SetSeineService { +public class SetSeineServiceController extends ObserveAuthenticatedServiceControllerSupport<SetSeineService> implements SetSeineService { public SetSeineServiceController() { super(SetSeineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetCatchServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetCatchServiceController.java index 529ee75..2cc4aff 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetCatchServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetCatchServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; import fr.ird.observe.services.service.seine.TargetCatchService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.TargetCatchService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TargetCatchServiceController extends ObserveServiceControllerSupport<TargetCatchService> implements TargetCatchService { +public class TargetCatchServiceController extends ObserveAuthenticatedServiceControllerSupport<TargetCatchService> implements TargetCatchService { public TargetCatchServiceController() { super(TargetCatchService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java index 1495e2b..92365a2 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.services.service.seine.TargetSampleService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.TargetSampleService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TargetSampleServiceController extends ObserveServiceControllerSupport<TargetSampleService> implements TargetSampleService { +public class TargetSampleServiceController extends ObserveAuthenticatedServiceControllerSupport<TargetSampleService> implements TargetSampleService { public TargetSampleServiceController() { super(TargetSampleService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TransmittingBuoyOperationServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TransmittingBuoyOperationServiceController.java index ae48852..9d7d6cd 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TransmittingBuoyOperationServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TransmittingBuoyOperationServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; import fr.ird.observe.services.service.seine.TransmittingBuoyOperationService; @@ -8,7 +8,7 @@ import fr.ird.observe.services.service.seine.TransmittingBuoyOperationService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TransmittingBuoyOperationServiceController extends ObserveServiceControllerSupport<TransmittingBuoyOperationService> implements TransmittingBuoyOperationService { +public class TransmittingBuoyOperationServiceController extends ObserveAuthenticatedServiceControllerSupport<TransmittingBuoyOperationService> implements TransmittingBuoyOperationService { public TransmittingBuoyOperationServiceController() { super(TransmittingBuoyOperationService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java index 96bc2b1..053673b 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java @@ -1,6 +1,6 @@ package fr.ird.observe.application.web.controller.v1.seine; -import fr.ird.observe.application.web.controller.v1.ObserveServiceControllerSupport; +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineStubDto; @@ -11,7 +11,7 @@ import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class TripSeineServiceController extends ObserveServiceControllerSupport<TripSeineService> implements TripSeineService { +public class TripSeineServiceController extends ObserveAuthenticatedServiceControllerSupport<TripSeineService> implements TripSeineService { public TripSeineServiceController() { super(TripSeineService.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveDataSourceConfigurationInjector.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveDataSourceConfigurationInjector.java index 19fcbb9..c288a09 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveDataSourceConfigurationInjector.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveDataSourceConfigurationInjector.java @@ -1,7 +1,9 @@ package fr.ird.observe.application.web.injector; -import fr.ird.observe.application.web.request.ObserveWebRequestContext; +import com.google.common.base.Preconditions; +import com.google.gson.Gson; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.debux.webmotion.server.call.Call; @@ -11,6 +13,11 @@ import org.debux.webmotion.server.mapping.Mapping; import java.lang.reflect.Type; /** + * Pour injecter une configuration de source de données. + * + * Ici on ne peut injecter qu'une configuration de source de données de type REST. La correspondance avec une source + * physique sera faite plus tard dans le service concerné. + * * Created on 07/09/15. * * @author Tony Chemit - chemit@codelutin.com @@ -20,16 +27,23 @@ public class ObserveDataSourceConfigurationInjector implements ExecutorParameter /** Logger. */ private static final Log log = LogFactory.getLog(ObserveDataSourceConfigurationInjector.class); + protected final Gson gson; + + public ObserveDataSourceConfigurationInjector(Gson gson) { + this.gson = gson; + } + @Override public Object getValue(Mapping mapping, Call call, String name, Class<?> type, Type generic) { - ObserveDataSourceConfiguration dataSourceConfiguration = null; + ObserveDataSourceConfigurationRest dataSourceConfiguration = null; if (type.equals(ObserveDataSourceConfiguration.class)) { - // on recupère la configuration de source de données depuis le requestContext - ObserveWebRequestContext requestContext = ObserveWebRequestContext.getRequestContext(call.getContext()); + Call.ParameterTree parameterTree = call.getParameterTree().getObject().get(name); + Preconditions.checkNotNull(parameterTree, "Le paramètre " + name + " n'as pas été trouvé, recompiler (parameter)!"); + String gsonContent = ((String[]) parameterTree.getValue())[0]; - dataSourceConfiguration = requestContext.getDataSourceConfiguration(); + dataSourceConfiguration = gson.fromJson(gsonContent, ObserveDataSourceConfigurationRest.class); if (log.isInfoEnabled()) { log.info("Inject dataSourceConfiguration: " + dataSourceConfiguration); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java index 0eec00b..e21c48a 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java @@ -62,16 +62,13 @@ public class ObserveWebRequestContext { return applicationContext; } - public <S extends ObserveService> S newService(Class<S> serviceType) { - - checkSecurityContextIsPresent(); + public <S extends ObserveService> S newService(Class<S> serviceType, ObserveDataSourceConfiguration dataSourceConfiguration) { ObserveServiceInitializer observeServiceInitializer = ObserveServiceInitializer.create( applicationLocale, referentialLocale, applicationContext.getApplicationConfiguration().getTemporaryDirectory(), - getSecurityContext().getDataSourceConfiguration() - ); + dataSourceConfiguration); S service = applicationContext.newService(observeServiceInitializer, serviceType); return service; @@ -79,7 +76,7 @@ public class ObserveWebRequestContext { public void checkIsAuthenticated() { checkSecurityContextIsPresent(); - Preconditions.checkState(getSecurityContext().isAuthenticated()); + Preconditions.checkState(getSecurityContext().isAuthenticationTokenPresent()); } public void checkSecurityContextIsPresent() { @@ -90,11 +87,6 @@ public class ObserveWebRequestContext { Preconditions.checkState(optionalAdminApiKey.isPresent()); } - public ObserveDataSourceConfiguration getDataSourceConfiguration() { - checkSecurityContextIsPresent(); - return optionalSecurityContext.get().getDataSourceConfiguration(); - } - public String getUserLogin() { checkSecurityContextIsPresent(); ObserveWebRequestSecurityContext securityContext = getSecurityContext(); @@ -102,8 +94,11 @@ public class ObserveWebRequestContext { return securityContext.getOptionalUserLogin().get(); } - protected ObserveWebRequestSecurityContext getSecurityContext() { - return optionalSecurityContext.get(); + public String getUserPassword() { + checkSecurityContextIsPresent(); + ObserveWebRequestSecurityContext securityContext = getSecurityContext(); + Preconditions.checkState(securityContext.getOptionalUserPassword().isPresent()); + return securityContext.getOptionalUserPassword().get(); } public Optional<String> getOptionalDatabaseName() { @@ -117,4 +112,8 @@ public class ObserveWebRequestContext { Preconditions.checkState(securityContext.getOptionalAuthenticationToken().isPresent()); return securityContext.getOptionalAuthenticationToken().get(); } + + protected ObserveWebRequestSecurityContext getSecurityContext() { + return optionalSecurityContext.get(); + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java index 3e1348c..9ee4bdc 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java @@ -1,7 +1,6 @@ package fr.ird.observe.application.web.request; import com.google.common.base.Optional; -import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; /** * Created on 31/08/15. @@ -10,16 +9,14 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; */ public class ObserveWebRequestSecurityContext { - public static ObserveWebRequestSecurityContext create(ObserveDataSourceConfiguration dataSourceConfiguration, String userLogin,String userPassword, String userDatabaseName) { - return new ObserveWebRequestSecurityContext(dataSourceConfiguration, Optional.<String>absent(), Optional.fromNullable(userLogin), Optional.fromNullable(userPassword), Optional.fromNullable(userDatabaseName)); + public static ObserveWebRequestSecurityContext create(String userLogin, String userPassword, String userDatabaseName) { + return new ObserveWebRequestSecurityContext(Optional.<String>absent(), Optional.fromNullable(userLogin), Optional.fromNullable(userPassword), Optional.fromNullable(userDatabaseName)); } - public static ObserveWebRequestSecurityContext createAuthenticated(ObserveDataSourceConfiguration dataSourceConfiguration, String authenticationToken) { - return new ObserveWebRequestSecurityContext(dataSourceConfiguration, Optional.of(authenticationToken), Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent()); + public static ObserveWebRequestSecurityContext createAuthenticated(String authenticationToken) { + return new ObserveWebRequestSecurityContext(Optional.of(authenticationToken), Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent()); } - protected final ObserveDataSourceConfiguration dataSourceConfiguration; - protected final Optional<String> optionalAuthenticationToken; protected final Optional<String> optionalUserLogin; @@ -28,14 +25,10 @@ public class ObserveWebRequestSecurityContext { protected final Optional<String> optionalUserDatabaseName; - public boolean isAuthenticated() { + public boolean isAuthenticationTokenPresent() { return optionalAuthenticationToken.isPresent(); } - public ObserveDataSourceConfiguration getDataSourceConfiguration() { - return dataSourceConfiguration; - } - public Optional<String> getOptionalAuthenticationToken() { return optionalAuthenticationToken; } @@ -52,8 +45,7 @@ public class ObserveWebRequestSecurityContext { return optionalUserDatabaseName; } - protected ObserveWebRequestSecurityContext(ObserveDataSourceConfiguration dataSourceConfiguration, Optional<String> optionalAuthenticationToken, Optional<String> optionalUserLogin, Optional<String> optionalUserPassword, Optional<String> optionalUserDatabaseName) { - this.dataSourceConfiguration = dataSourceConfiguration; + protected ObserveWebRequestSecurityContext(Optional<String> optionalAuthenticationToken, Optional<String> optionalUserLogin, Optional<String> optionalUserPassword, Optional<String> optionalUserDatabaseName) { this.optionalAuthenticationToken = optionalAuthenticationToken; this.optionalUserLogin = optionalUserLogin; this.optionalUserPassword = optionalUserPassword; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java index 9518e5c..7fdd8ff 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java @@ -5,15 +5,16 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class BadObserveWebUserPasswordException extends Exception{ +public class BadObserveWebUserPasswordException extends RuntimeException { private static final long serialVersionUID = 1L; protected final String userLogin; + protected final String userPassword; public BadObserveWebUserPasswordException(String userLogin, String userPassword) { - this.userLogin= userLogin; + this.userLogin = userLogin; this.userPassword = userPassword; } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java index 1ab9212..1b48e74 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java @@ -5,7 +5,7 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class InvalidAuthenticationTokenException extends Exception { +public class InvalidAuthenticationTokenException extends RuntimeException { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java index 4568096..674300e 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java @@ -5,14 +5,14 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class UnknownObserveWebUserException extends Exception { +public class UnknownObserveWebUserException extends RuntimeException { private static final long serialVersionUID = 1L; protected final String userLogin; public UnknownObserveWebUserException(String userLogin) { - this.userLogin= userLogin; + this.userLogin = userLogin; } public String getUserLogin() { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java index 6ff40f2..401113a 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java @@ -5,11 +5,12 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class UnknownObserveWebUserForDatabaseException extends Exception { +public class UnknownObserveWebUserForDatabaseException extends RuntimeException { private static final long serialVersionUID = 1L; protected final String databaseName; + protected final String role; public UnknownObserveWebUserForDatabaseException(String databaseName, String role) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 09c29230b4bc78ffbde4e678a0d8ef3e336daacf Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 22:14:40 2015 +0200 Le test de ping refonctionne --- .../test/java/fr/ird/observe/services/service/PingServiceRestTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/PingServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/PingServiceRestTest.java index eb53f42..a338309 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/PingServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/PingServiceRestTest.java @@ -5,7 +5,6 @@ import fr.ird.observe.services.TestClassResource; import fr.ird.observe.services.TestMethodResource; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; import org.junit.ClassRule; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; @@ -37,8 +36,6 @@ public class PingServiceRestTest { } - //FIXME Il ne faut pas chercher à récuperer dans securityContext des informations pour ce genre de service - @Ignore @Test public void testPingWithBadUserName() throws CloneNotSupportedException { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 884b8d89f03e7a6e10e0f87b9895dc99a627f122 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 22:15:24 2015 +0200 Ajout de fixme sur le test de DatasourceService car la gestion d'esxception n'est pas encore gérée au niveau du serveur web --- .../observe/services/service/DataSourceServiceRestTest.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/DataSourceServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/DataSourceServiceRestTest.java index 269edb0..e09761d 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/DataSourceServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/DataSourceServiceRestTest.java @@ -28,10 +28,13 @@ public class DataSourceServiceRestTest { @Rule public final TestMethodResource testMethodResource = new TestMethodResource(testClassResource); - @Test(expected = DatabaseNotFoundException.class) - public void testOpenNotExistingDatabase() throws IOException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { + //FIXME + @Ignore + @Test + public void testOpenNotExistingDatabase() throws IOException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, CloneNotSupportedException { - ObserveDataSourceConfigurationRest dataSourceConfiguration = testMethodResource.getDataSourceConfiguration(); + ObserveDataSourceConfigurationRest dataSourceConfiguration = testMethodResource.getDataSourceConfiguration().clone(); + dataSourceConfiguration.setLogin(dataSourceConfiguration.getLogin() + System.nanoTime()); DataSourceService service = testClassResource.newService(dataSourceConfiguration, DataSourceService.class); service.open(dataSourceConfiguration); @@ -57,6 +60,7 @@ public class DataSourceServiceRestTest { } + //FIXME @Ignore @Test public void testCreateEmptyDataSource() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 69296b99cded0ad358f8564815cd4fc97e0ed641 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 23:47:12 2015 +0200 On ne soumet dans le header que le jeton de securite --- .../ObserveDataSourceConfigurationRest.java | 12 ++++++++++ ...bserveDataSourceConfigurationRestConstants.java | 6 ----- .../services/ObserveServiceFactoryRest.java | 15 +----------- .../fr/ird/observe/services/TestClassResource.java | 11 +++++++++ .../service/seine/TripSeineServiceTest.java | 27 +++++++++++++++++++++- 5 files changed, 50 insertions(+), 21 deletions(-) diff --git a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRest.java b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRest.java index 89ace31..01c5e8c 100644 --- a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRest.java +++ b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRest.java @@ -1,5 +1,6 @@ package fr.ird.observe.services.configuration; +import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import java.net.URL; @@ -89,4 +90,15 @@ public class ObserveDataSourceConfigurationRest implements ObserveDataSourceConf public ObserveDataSourceConfigurationRest clone() throws CloneNotSupportedException { return (ObserveDataSourceConfigurationRest) super.clone(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("label", label) + .add("serverUrl", serverUrl) + .add("login", login) + .add("password", "***") + .add("optionalDatabaseName", optionalDatabaseName) + .toString(); + } } diff --git a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java index 8bb72a4..7e0888e 100644 --- a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java +++ b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java @@ -19,12 +19,6 @@ public interface ObserveDataSourceConfigurationRestConstants { String REQUEST_AUTHENTICATION_TOKEN = "authenticationToken"; - String REQUEST_USER_LOGIN = "userLogin"; - - String REQUEST_USER_PASSWORD = "userPassword"; - - String REQUEST_USER_DATABASE_NAME = "userDatabaseName"; - String REQUEST_ADMIN_API_KEY = "adminApiKey"; } diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java index 966f40d..cb40777 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java @@ -315,21 +315,8 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl requestBuilder.addHeader(REQUEST_AUTHENTICATION_TOKEN, dataSourceConnection.getAuthenticationToken()); - } else { - - ObserveDataSourceConfigurationRest dataSourceConfiguration = getDataSourceConfiguration(); - Preconditions.checkState(dataSourceConfiguration != null, "Must have at least a connection or a configuration"); - - requestBuilder.addHeader(REQUEST_USER_LOGIN, dataSourceConfiguration.getLogin()); - requestBuilder.addHeader(REQUEST_USER_PASSWORD, new String(dataSourceConfiguration.getPassword())); - if (dataSourceConfiguration.withDatabaseName()) { - - requestBuilder.addHeader(REQUEST_USER_DATABASE_NAME, dataSourceConfiguration.getOptionalDatabaseName().get()); - - } - } - + if (!Strings.isNullOrEmpty(applicationLocale)) { requestBuilder.addHeader(REQUEST_APPLICATION_LOCALE, applicationLocale); } diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java index ad79060..4f9c6ae 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java @@ -2,6 +2,7 @@ package fr.ird.observe.services; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.test.TestHelper; import org.apache.commons.logging.Log; @@ -65,6 +66,16 @@ public class TestClassResource implements TestRule { return serviceFactory.newService(observeServiceInitializer, serviceType); } + public <S extends ObserveService> S newService(ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) { + ObserveServiceInitializer observeServiceInitializer = ObserveServiceInitializer.create( + Locale.FRANCE, + ReferentialLocale.FR, + temporaryDirectoryRoot.toFile(), + dataSourceConnection + ); + return serviceFactory.newService(observeServiceInitializer, serviceType); + } + public void closeServiceFactory() { serviceFactory.close(); } diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java index 631c413..5786ae0 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java @@ -5,6 +5,7 @@ import com.google.common.collect.Iterables; import fr.ird.observe.services.TestClassResource; import fr.ird.observe.services.TestMethodResource; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceSetDto; @@ -16,9 +17,12 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineStubDto; +import fr.ird.observe.services.service.DataSourceService; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.nuiton.util.DateUtil; @@ -33,7 +37,9 @@ import java.util.List; public class TripSeineServiceTest { public static final String TRIP_SEINE_ID_1 = "fr.ird.observe.entities.seine.TripSeine#1359167789871#0.6765335978809843"; + public static final String TRIP_SEINE_ID_2 = "fr.ird.observe.entities.seine.TripSeine#1359280279156#0.41771067982188215"; + public static final String TRIP_SEINE_ID_3 = "fr.ird.observe.entities.seine.TripSeine#1360156698296#0.6097793743126777"; public static final String PROGRAM_ID = "fr.ird.observe.entities.referentiel.Program#1239832686262#0.31033946454061234"; @@ -46,11 +52,28 @@ public class TripSeineServiceTest { protected TripSeineService service; + private ObserveDataSourceConnection dataSourceConnection; + + private DataSourceService dataSourceService; + @Before public void setUp() throws Exception { ObserveDataSourceConfigurationRest dataSourceConfiguration = testMethodResource.getDataSourceConfiguration(); - service = testClassResource.newService(dataSourceConfiguration, TripSeineService.class); + + dataSourceService = testClassResource.newService(dataSourceConfiguration, DataSourceService.class); + dataSourceConnection = dataSourceService.open(dataSourceConfiguration); + + service = testClassResource.newService(dataSourceConnection, TripSeineService.class); + + } + + @After + public void tearDown() throws Exception { + + if (dataSourceConnection != null) { + dataSourceService.close(); + } } @@ -221,6 +244,8 @@ public class TripSeineServiceTest { } + //FIXME Ce test modifie la base, il faut trouver un moyen d'utiliser une autre base + @Ignore @Test public void saveUpdateTest() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 695639ac672ebe6e7982244131b53dce70be714e Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 7 23:47:48 2015 +0200 Simplification de la sécurité + Gestion des erreurs au niveau du serveur web (reste à gérer le retour dans le client REST) --- .../application/web/ObserveWebMotionFilter.java | 52 ++---------- .../web/controller/v1/ConfigurationController.java | 2 +- .../controller/v1/DataSourceServiceController.java | 3 - .../controller/v1/ObserveWebErrorController.java | 97 ++++++++++++++++++++++ .../v1/ReferentialServiceController.java | 7 -- .../web/request/ObserveWebRequestContext.java | 63 +++++--------- .../request/ObserveWebRequestSecurityContext.java | 54 ------------ .../web/security/AdminApiKeyNotFoundException.java | 11 +++ .../AuthenticationTokenNotFoundException.java | 11 +++ .../BadObserveWebUserPasswordException.java | 2 +- .../InvalidAdminKeyApiException.java | 4 +- .../InvalidAuthenticationTokenException.java | 2 +- .../ObserveWebSecurityApplicationContext.java | 13 ++- .../ObserveWebSecurityExceptionSupport.java | 26 ++++++ .../SecurityRequestContextNotFoundException.java | 11 +++ .../security/UnknownObserveWebUserException.java | 2 +- .../UnknownObserveWebUserForDatabaseException.java | 2 +- .../web/security/UserLoginNotFoundException.java | 11 +++ .../security/UserPasswordNotFoundException.java | 11 +++ observe-application-web/src/main/resources/mapping | 3 + 20 files changed, 230 insertions(+), 157 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java index b67c3fc..aabdd5d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java @@ -1,11 +1,7 @@ package fr.ird.observe.application.web; +import com.google.common.base.Strings; import fr.ird.observe.application.web.request.ObserveWebRequestContext; -import fr.ird.observe.application.web.request.ObserveWebRequestSecurityContext; -import fr.ird.observe.application.web.security.BadObserveWebUserPasswordException; -import fr.ird.observe.application.web.security.InvalidAuthenticationTokenException; -import fr.ird.observe.application.web.security.UnknownObserveWebUserException; -import fr.ird.observe.application.web.security.UnknownObserveWebUserForDatabaseException; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestConstants; import fr.ird.observe.services.dto.constants.ReferentialLocale; import org.apache.commons.lang3.StringUtils; @@ -21,27 +17,26 @@ import java.util.Locale; */ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDataSourceConfigurationRestConstants { - public void inject(HttpContext context) throws InvalidAuthenticationTokenException, UnknownObserveWebUserException, BadObserveWebUserPasswordException, UnknownObserveWebUserForDatabaseException, InvalidAdminKeyApiException { + public void inject(HttpContext context) { ObserveWebApplicationContext applicationContext = ObserveWebApplicationContext.getApplicationContext(context); HttpServletRequest request = context.getRequest(); - ObserveWebRequestSecurityContext securityContext = createSecurityContext(request); - Locale applicationLocale = getApplicationLocale(request); ReferentialLocale referentialLocale = getReferentialLocale(request); String adminApiKey = getRequestHeaderOrParameterValueOrNull(request, REQUEST_ADMIN_API_KEY); + if (Strings.isNullOrEmpty(adminApiKey)) { + adminApiKey = null; + } - if (adminApiKey != null) { - String configurationAdminKey = applicationContext.getApplicationConfiguration().getAdminApiKey(); - if (!configurationAdminKey.equals(adminApiKey)) { - throw new InvalidAdminKeyApiException(adminApiKey); - } + String authenticationToken = getRequestHeaderOrParameterValueOrNull(request, REQUEST_AUTHENTICATION_TOKEN); + if (Strings.isNullOrEmpty(authenticationToken)) { + authenticationToken = null; } - ObserveWebRequestContext requestContext = new ObserveWebRequestContext(applicationContext, securityContext, applicationLocale, referentialLocale, adminApiKey); + ObserveWebRequestContext requestContext = new ObserveWebRequestContext(applicationContext, applicationLocale, referentialLocale, adminApiKey, authenticationToken); ObserveWebRequestContext.setRequestContext(context, requestContext); doProcess(); @@ -71,35 +66,6 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa } - protected ObserveWebRequestSecurityContext createSecurityContext(HttpServletRequest request) throws InvalidAuthenticationTokenException, UnknownObserveWebUserForDatabaseException, BadObserveWebUserPasswordException, UnknownObserveWebUserException { - - ObserveWebRequestSecurityContext securityContext = null; - - String authenticationToken = getRequestHeaderOrParameterValueOrNull(request, REQUEST_AUTHENTICATION_TOKEN); - if (StringUtils.isNotBlank(authenticationToken)) { - - securityContext = ObserveWebRequestSecurityContext.createAuthenticated(authenticationToken); - - } else { - - // Cas où on l'utilisateur n'est pas connecté - - String userLogin = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_LOGIN); - String userPassword = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_PASSWORD); - String userDatabaseName = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_DATABASE_NAME); - - if (!(userLogin == null && userPassword == null)) { - - securityContext = ObserveWebRequestSecurityContext.create(userLogin, userPassword, userDatabaseName); - - } - - } - - return securityContext; - - } - protected String getRequestHeaderOrParameterValueOrNull(HttpServletRequest request, String parameterName) { String result = request.getHeader(parameterName); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java index ca4815e..6684a6d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java @@ -27,7 +27,7 @@ public class ConfigurationController extends ObserveWebMotionController { @Override public void setContextable(WebMotionContextable contextable) { super.setContextable(contextable); - getRequestContext().checkAdminApiKeyIsPresent(); + getRequestContext().checkAdminApiKeyIsValid(); } public Render mapping() { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index 9d0728c..5ffd414 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -2,7 +2,6 @@ package fr.ird.observe.application.web.controller.v1; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.rometools.utils.Strings; import fr.ird.observe.application.web.request.ObserveWebRequestContext; import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; @@ -91,10 +90,8 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport ObserveDataSourceConfigurationRest dataSourceConfigurationRest = (ObserveDataSourceConfigurationRest) dataSourceConfigurationFromRequest; String login = dataSourceConfigurationRest.getLogin(); - Preconditions.checkState(Strings.isNotEmpty(login), "Pas de login fournit"); String password = new String(dataSourceConfigurationRest.getPassword()); - Preconditions.checkState(Strings.isNotEmpty(password), "Pas de mot de passe fournit"); Optional<String> optionalDatabaseName = dataSourceConfigurationRest.getOptionalDatabaseName(); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveWebErrorController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveWebErrorController.java new file mode 100644 index 0000000..7eb0731 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ObserveWebErrorController.java @@ -0,0 +1,97 @@ +package fr.ird.observe.application.web.controller.v1; + +import fr.ird.observe.application.web.security.ObserveWebSecurityExceptionSupport; +import org.debux.webmotion.server.WebMotionController; +import org.debux.webmotion.server.WebMotionException; +import org.debux.webmotion.server.call.HttpContext; + +import java.lang.reflect.InvocationTargetException; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Pour gérer les erreurs. + * + * On retourne un rendu json avec le status http, l'erreur déclanchée... + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveWebErrorController extends WebMotionController { + + class Error { + + protected final Integer httpCode; + + protected final Class<?> exceptionType; + + protected final String message; + + protected final Throwable exception; + + Error(Integer httpCode, Class<?> exceptionType, String message, Throwable exception) { + this.httpCode = httpCode; + this.exceptionType = exceptionType; + this.message = message; + this.exception = exception; + } + } + + public Error error(HttpContext.ErrorData errorData) { + + @SuppressWarnings("ThrowableResultOfMethodCallIgnored") + Throwable exception = errorData.getException(); + + if (exception instanceof WebMotionException) { + + if (exception.getCause() == exception) { + exception.initCause(null); + } else { + exception = exception.getCause(); + } + + } + + if (exception instanceof InvocationTargetException) { + + exception = exception.getCause(); + + } + + Integer statusCode = errorData.getStatusCode(); + + String message = errorData.getMessage(); + + if (exception != null) { + + Set<StackTraceElement> stackTraceElements = new LinkedHashSet<>(); + if (exception.getStackTrace() != null) { + for (StackTraceElement stackTraceElement : exception.getStackTrace()) { + if (stackTraceElement.getClassName().contains("sun.reflect.")) { + continue; + } + stackTraceElements.add(stackTraceElement); + } + } + + if (exception instanceof ObserveWebSecurityExceptionSupport) { + statusCode = 403; + } + + exception.setStackTrace(stackTraceElements.toArray(new StackTraceElement[stackTraceElements.size()])); + exception.initCause(null); + + message = exception.getMessage(); + + } + + Error error = new Error(statusCode, + exception == null ? null : exception.getClass(), + message, + exception); + + return error; + + } + +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 678425a..6189071 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -5,7 +5,6 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.ReferentialService; -import org.debux.webmotion.server.WebMotionContextable; import java.util.Collection; @@ -21,12 +20,6 @@ public class ReferentialServiceController extends ObserveAuthenticatedServiceCon } @Override - public void setContextable(WebMotionContextable contextable) { - super.setContextable(contextable); - getRequestContext().checkIsAuthenticated(); - } - - @Override public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { return service.getReferentialReferenceSet(type); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java index e21c48a..c2d71c2 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java @@ -1,8 +1,10 @@ package fr.ird.observe.application.web.request; import com.google.common.base.Optional; -import com.google.common.base.Preconditions; import fr.ird.observe.application.web.ObserveWebApplicationContext; +import fr.ird.observe.application.web.security.AdminApiKeyNotFoundException; +import fr.ird.observe.application.web.security.AuthenticationTokenNotFoundException; +import fr.ird.observe.application.web.security.InvalidAdminKeyApiException; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; @@ -40,22 +42,18 @@ public class ObserveWebRequestContext { protected final Optional<String> optionalAdminApiKey; - protected final Optional<ObserveWebRequestSecurityContext> optionalSecurityContext; + protected final Optional<String> optionalAuthenticationToken; public ObserveWebRequestContext(ObserveWebApplicationContext applicationContext, - ObserveWebRequestSecurityContext optionalSecurityContext, Locale applicationLocale, ReferentialLocale referentialLocale, - String adminApiKey) { + String adminApiKey, + String authenticationToken) { this.applicationContext = applicationContext; this.applicationLocale = applicationLocale; this.referentialLocale = referentialLocale; this.optionalAdminApiKey = Optional.fromNullable(adminApiKey); - this.optionalSecurityContext = Optional.fromNullable(optionalSecurityContext); - } - - public Optional<String> getOptionalAdminApiKey() { - return optionalAdminApiKey; + this.optionalAuthenticationToken = Optional.fromNullable(authenticationToken); } public ObserveWebApplicationContext getApplicationContext() { @@ -74,46 +72,29 @@ public class ObserveWebRequestContext { } - public void checkIsAuthenticated() { - checkSecurityContextIsPresent(); - Preconditions.checkState(getSecurityContext().isAuthenticationTokenPresent()); - } - - public void checkSecurityContextIsPresent() { - Preconditions.checkState(optionalSecurityContext.isPresent()); - } - public void checkAdminApiKeyIsPresent() { - Preconditions.checkState(optionalAdminApiKey.isPresent()); - } - - public String getUserLogin() { - checkSecurityContextIsPresent(); - ObserveWebRequestSecurityContext securityContext = getSecurityContext(); - Preconditions.checkState(securityContext.getOptionalUserLogin().isPresent()); - return securityContext.getOptionalUserLogin().get(); + if (!optionalAdminApiKey.isPresent()) { + throw new AdminApiKeyNotFoundException(); + } } - public String getUserPassword() { - checkSecurityContextIsPresent(); - ObserveWebRequestSecurityContext securityContext = getSecurityContext(); - Preconditions.checkState(securityContext.getOptionalUserPassword().isPresent()); - return securityContext.getOptionalUserPassword().get(); + public void checkAdminApiKeyIsValid() { + checkAdminApiKeyIsPresent(); + String configurationAdminKey = applicationContext.getApplicationConfiguration().getAdminApiKey(); + if (!configurationAdminKey.equals(optionalAdminApiKey.get())) { + throw new InvalidAdminKeyApiException(optionalAdminApiKey.get()); + } } - public Optional<String> getOptionalDatabaseName() { - checkSecurityContextIsPresent(); - return optionalSecurityContext.get().getOptionalUserDatabaseName(); + public void checkAuthenticationTokenIsPresent() { + if (!optionalAuthenticationToken.isPresent()) { + throw new AuthenticationTokenNotFoundException(); + } } public String getAuthenticationToken() { - checkSecurityContextIsPresent(); - ObserveWebRequestSecurityContext securityContext = getSecurityContext(); - Preconditions.checkState(securityContext.getOptionalAuthenticationToken().isPresent()); - return securityContext.getOptionalAuthenticationToken().get(); + checkAuthenticationTokenIsPresent(); + return optionalAuthenticationToken.get(); } - protected ObserveWebRequestSecurityContext getSecurityContext() { - return optionalSecurityContext.get(); - } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java deleted file mode 100644 index 9ee4bdc..0000000 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestSecurityContext.java +++ /dev/null @@ -1,54 +0,0 @@ -package fr.ird.observe.application.web.request; - -import com.google.common.base.Optional; - -/** - * Created on 31/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveWebRequestSecurityContext { - - public static ObserveWebRequestSecurityContext create(String userLogin, String userPassword, String userDatabaseName) { - return new ObserveWebRequestSecurityContext(Optional.<String>absent(), Optional.fromNullable(userLogin), Optional.fromNullable(userPassword), Optional.fromNullable(userDatabaseName)); - } - - public static ObserveWebRequestSecurityContext createAuthenticated(String authenticationToken) { - return new ObserveWebRequestSecurityContext(Optional.of(authenticationToken), Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent()); - } - - protected final Optional<String> optionalAuthenticationToken; - - protected final Optional<String> optionalUserLogin; - - protected final Optional<String> optionalUserPassword; - - protected final Optional<String> optionalUserDatabaseName; - - public boolean isAuthenticationTokenPresent() { - return optionalAuthenticationToken.isPresent(); - } - - public Optional<String> getOptionalAuthenticationToken() { - return optionalAuthenticationToken; - } - - public Optional<String> getOptionalUserLogin() { - return optionalUserLogin; - } - - public Optional<String> getOptionalUserPassword() { - return optionalUserPassword; - } - - public Optional<String> getOptionalUserDatabaseName() { - return optionalUserDatabaseName; - } - - protected ObserveWebRequestSecurityContext(Optional<String> optionalAuthenticationToken, Optional<String> optionalUserLogin, Optional<String> optionalUserPassword, Optional<String> optionalUserDatabaseName) { - this.optionalAuthenticationToken = optionalAuthenticationToken; - this.optionalUserLogin = optionalUserLogin; - this.optionalUserPassword = optionalUserPassword; - this.optionalUserDatabaseName = optionalUserDatabaseName; - } -} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AdminApiKeyNotFoundException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AdminApiKeyNotFoundException.java new file mode 100644 index 0000000..aaa8b69 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AdminApiKeyNotFoundException.java @@ -0,0 +1,11 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class AdminApiKeyNotFoundException extends ObserveWebSecurityExceptionSupport{ + + private static final long serialVersionUID = 1L; +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AuthenticationTokenNotFoundException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AuthenticationTokenNotFoundException.java new file mode 100644 index 0000000..d24ebd5 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/AuthenticationTokenNotFoundException.java @@ -0,0 +1,11 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class AuthenticationTokenNotFoundException extends ObserveWebSecurityExceptionSupport{ + + private static final long serialVersionUID = 1L; +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java index 7fdd8ff..9bcea8d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/BadObserveWebUserPasswordException.java @@ -5,7 +5,7 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class BadObserveWebUserPasswordException extends RuntimeException { +public class BadObserveWebUserPasswordException extends ObserveWebSecurityExceptionSupport { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/InvalidAdminKeyApiException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAdminKeyApiException.java similarity index 72% rename from observe-application-web/src/main/java/fr/ird/observe/application/web/InvalidAdminKeyApiException.java rename to observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAdminKeyApiException.java index 331ce44..2c9c3ac 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/InvalidAdminKeyApiException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAdminKeyApiException.java @@ -1,11 +1,11 @@ -package fr.ird.observe.application.web; +package fr.ird.observe.application.web.security; /** * Created on 02/09/15. * * @author Tony Chemit - chemit@codelutin.com */ -public class InvalidAdminKeyApiException extends Exception { +public class InvalidAdminKeyApiException extends ObserveWebSecurityExceptionSupport { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java index 1b48e74..dbd94e1 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/InvalidAuthenticationTokenException.java @@ -5,7 +5,7 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class InvalidAuthenticationTokenException extends RuntimeException { +public class InvalidAuthenticationTokenException extends ObserveWebSecurityExceptionSupport { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityApplicationContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityApplicationContext.java index f07d941..d0ffb77 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityApplicationContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityApplicationContext.java @@ -2,6 +2,7 @@ package fr.ird.observe.application.web.security; import com.google.common.base.Optional; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabase; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabaseRole; @@ -167,7 +168,15 @@ public class ObserveWebSecurityApplicationContext implements Closeable { } - public ObserveDataSourceConfiguration getDataSourceConfiguration(String userLogin, String userPassword, Optional<String> optionalDatabaseName) throws UnknownObserveWebUserException, BadObserveWebUserPasswordException, UnknownObserveWebUserForDatabaseException { + public ObserveDataSourceConfiguration getDataSourceConfiguration(String userLogin, String userPassword, Optional<String> optionalDatabaseName) { + + if (Strings.isNullOrEmpty(userLogin)) { + throw new UserLoginNotFoundException(); + } + + if (Strings.isNullOrEmpty(userPassword)) { + throw new UserPasswordNotFoundException(); + } // Get user Optional<? extends ObserveWebUser> optionalUser = users.getUserByLogin(userLogin); @@ -190,7 +199,7 @@ public class ObserveWebSecurityApplicationContext implements Closeable { * @return la configuration de la data source associée au jeton * @throws InvalidAuthenticationTokenException si le jeton n'est pas connu */ - public ObserveDataSourceConfiguration getDataSourceConfiguration(String authenticationToken) throws InvalidAuthenticationTokenException { + public ObserveDataSourceConfiguration getDataSourceConfiguration(String authenticationToken) { ObserveDataSourceConfiguration dataSourceConfiguration = authenticateCache.getDataSourceConfigurationIfPresent(authenticationToken); if (dataSourceConfiguration == null) { throw new InvalidAuthenticationTokenException(authenticationToken); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityExceptionSupport.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityExceptionSupport.java new file mode 100644 index 0000000..a0c90be --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/ObserveWebSecurityExceptionSupport.java @@ -0,0 +1,26 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class ObserveWebSecurityExceptionSupport extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public ObserveWebSecurityExceptionSupport() { + } + + public ObserveWebSecurityExceptionSupport(String message) { + super(message); + } + + public ObserveWebSecurityExceptionSupport(String message, Throwable cause) { + super(message, cause); + } + + public ObserveWebSecurityExceptionSupport(Throwable cause) { + super(cause); + } +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/SecurityRequestContextNotFoundException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/SecurityRequestContextNotFoundException.java new file mode 100644 index 0000000..4bb116a --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/SecurityRequestContextNotFoundException.java @@ -0,0 +1,11 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class SecurityRequestContextNotFoundException extends ObserveWebSecurityExceptionSupport{ + + private static final long serialVersionUID = 1L; +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java index 674300e..362880e 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserException.java @@ -5,7 +5,7 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class UnknownObserveWebUserException extends RuntimeException { +public class UnknownObserveWebUserException extends ObserveWebSecurityExceptionSupport { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java index 401113a..a31573d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UnknownObserveWebUserForDatabaseException.java @@ -5,7 +5,7 @@ package fr.ird.observe.application.web.security; * * @author Tony Chemit - chemit@codelutin.com */ -public class UnknownObserveWebUserForDatabaseException extends RuntimeException { +public class UnknownObserveWebUserForDatabaseException extends ObserveWebSecurityExceptionSupport { private static final long serialVersionUID = 1L; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserLoginNotFoundException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserLoginNotFoundException.java new file mode 100644 index 0000000..958922c --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserLoginNotFoundException.java @@ -0,0 +1,11 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class UserLoginNotFoundException extends ObserveWebSecurityExceptionSupport{ + + private static final long serialVersionUID = 1L; +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserPasswordNotFoundException.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserPasswordNotFoundException.java new file mode 100644 index 0000000..98ee672 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/security/UserPasswordNotFoundException.java @@ -0,0 +1,11 @@ +package fr.ird.observe.application.web.security; + +/** + * Created on 07/09/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class UserPasswordNotFoundException extends ObserveWebSecurityExceptionSupport{ + + private static final long serialVersionUID = 1L; +} diff --git a/observe-application-web/src/main/resources/mapping b/observe-application-web/src/main/resources/mapping index 60d2791..ec98670 100644 --- a/observe-application-web/src/main/resources/mapping +++ b/observe-application-web/src/main/resources/mapping @@ -39,6 +39,9 @@ default.render=fr.ird.observe.application.web.ObserveWebMotionRender [filters] * /* ObserveWebMotionFilter.inject +[errors] +* ObserveWebErrorController.error + [actions] GET /admin/configuration/{method} ConfigurationController.{method} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm