diff --git a/gecoregistration/pom.xml b/gecoregistration/pom.xml
index 2b8f7b0869c82e13c3ba6531f116911fda0b988b..3184299857964ed83f53befc2b8996cf5e678e25 100644
--- a/gecoregistration/pom.xml
+++ b/gecoregistration/pom.xml
@@ -5,19 +5,21 @@
org.springframework.boot
spring-boot-starter-parent
- 2.5.7
+ 3.3.5
it.enea.cruise
GECO
- 0.0.1-SNAPSHOT
+ 0.0.2-SNAPSHOT
war
GECO
GECO Project
- 11
- 11
- 11
+ 17
+ UTF-8
+ UTF-8
+
4.6.2.Final
@@ -57,11 +59,11 @@
test
-
+
org.springframework.boot
spring-boot-starter-jersey
@@ -92,16 +94,9 @@
org.springdoc
- springdoc-openapi
- 1.5.8
- pom
+ springdoc-openapi-starter-webmvc-ui
+ 2.3.0
-
-
org.projectlombok
lombok
@@ -137,11 +132,6 @@
scp-idp-sdk
1.0.6
-
org.apache.httpcomponents.client5
httpclient5
@@ -164,7 +154,7 @@
org.glassfish.jersey.ext
- jersey-spring5
+ jersey-spring6
org.glassfish.jersey.core
@@ -212,6 +202,26 @@
test
+
+
+
+
+ jakarta.json
+ jakarta.json-api
+ 2.1.3
+
diff --git a/gecoregistration/src/main/java/it/enea/cruise/GecoRegistrationSpringApplication.java b/gecoregistration/src/main/java/it/enea/cruise/GecoRegistrationSpringApplication.java
index c8902ab992105af7c1b8e15234f1c6c7b3635b5c..319f4473fb306728074cc4aa0672a42ccfc6774f 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/GecoRegistrationSpringApplication.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/GecoRegistrationSpringApplication.java
@@ -4,9 +4,6 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@EnableSwagger2
@EnableCaching
@SpringBootApplication
public class GecoRegistrationSpringApplication {
diff --git a/gecoregistration/src/main/java/it/enea/cruise/config/CorsConfigurationConfig.java b/gecoregistration/src/main/java/it/enea/cruise/config/CorsConfigurationConfig.java
deleted file mode 100644
index 649653af2c673cb9220f430cc77f54f00b980131..0000000000000000000000000000000000000000
--- a/gecoregistration/src/main/java/it/enea/cruise/config/CorsConfigurationConfig.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package it.enea.cruise.config;
-
-import java.util.Arrays;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.config.http.SessionCreationPolicy;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.CorsConfigurationSource;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-
-@Configuration
-public class CorsConfigurationConfig extends WebSecurityConfigurerAdapter{
-
- @Bean
- CorsConfigurationSource corsConfigurationSource() {
- CorsConfiguration configuration = new CorsConfiguration();
- configuration.addAllowedOrigin("*");
- configuration.setAllowedMethods(Arrays.asList("POST, PUT, GET, OPTIONS, DELETE, PATCH"));
- configuration.addAllowedHeader("*");
- configuration.addAllowedMethod("*");
-
- UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
- source.registerCorsConfiguration("/**", configuration);
- return source;
- }
- @Override
- protected void configure(HttpSecurity http) throws Exception {
-
- http
- .authorizeRequests().anyRequest().permitAll().and()
- .csrf().disable()
- .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
- .and()
- .httpBasic();
- http.cors();
-
- }
-
-}
diff --git a/gecoregistration/src/main/java/it/enea/cruise/config/CorsFilter.java b/gecoregistration/src/main/java/it/enea/cruise/config/CorsFilter.java
index 693ecf0fba933d3030b4d1b63b7953993470ba08..02d9a74b579e5b71e99414b9252fac3cd954b99f 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/config/CorsFilter.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/config/CorsFilter.java
@@ -1,20 +1,18 @@
package it.enea.cruise.config;
+/*
import java.io.IOException;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import org.apache.http.HttpStatus;
import org.springframework.web.filter.OncePerRequestFilter;
public class CorsFilter extends OncePerRequestFilter {
- @Override
- protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
+ */
+/*@Override
+ protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Origin,Authorization" );
@@ -25,5 +23,20 @@ public class CorsFilter extends OncePerRequestFilter {
} else {
chain.doFilter(request, response);
}
+ }*//*
+
+
+ @Override
+ protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOException {
+ response.setHeader("Access-Control-Allow-Origin", "*");
+ response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
+ response.setHeader("Access-Control-Allow-Headers", "Content-Type, Origin,Authorization" );
+ response.setHeader("Access-Control-Expose-Headers", "Content-Length, Origin,Authorization");
+ if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
+ System.out.println("Filtering OPTIONS request");
+ response.setStatus(HttpStatus.SC_OK);
+ } else {
+ filterChain.doFilter(request, response);
+ }
}
-}
\ No newline at end of file
+}*/
diff --git a/gecoregistration/src/main/java/it/enea/cruise/config/ElasticSearchConfiguration.java b/gecoregistration/src/main/java/it/enea/cruise/config/ElasticSearchConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..47c6b123454cbac7667ab80e012a04e7e0fcd8f6
--- /dev/null
+++ b/gecoregistration/src/main/java/it/enea/cruise/config/ElasticSearchConfiguration.java
@@ -0,0 +1,51 @@
+/*
+package it.enea.cruise.config;
+
+import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.json.jackson.JacksonJsonpMapper;
+import co.elastic.clients.transport.ElasticsearchTransport;
+import co.elastic.clients.transport.rest_client.RestClientTransport;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.elasticsearch.client.RestClient;
+import org.elasticsearch.client.RestClientBuilder;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConfigurationProperties("es")
+public class ElasticSearchConfiguration {
+ @Value("${es.username}")
+ protected String username;
+
+ @Value("${es.password}")
+ protected String password;
+
+ @Value("${es.host}")
+ protected String host;
+
+ @Value("${es.port}")
+ protected Integer port;
+
+ @Bean
+ public ElasticsearchClient getElasticSearchClient() {
+ final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+ credentialsProvider.setCredentials(AuthScope.ANY,
+ new UsernamePasswordCredentials(username, password));
+ RestClientBuilder builder = RestClient.builder(new HttpHost(host, port))
+ .setHttpClientConfigCallback(httpClientBuilder ->
+ httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
+ // Create the low-level client
+ RestClient restClient = builder.build();
+ // Create the transport with a Jackson mapper
+ ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
+ // And create the API client
+ return new ElasticsearchClient(transport);
+ }
+}
+*/
diff --git a/gecoregistration/src/main/java/it/enea/cruise/config/SecurityConfig.java b/gecoregistration/src/main/java/it/enea/cruise/config/SecurityConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba7587c48f1de49e655b5e298a242735d4a99a3e
--- /dev/null
+++ b/gecoregistration/src/main/java/it/enea/cruise/config/SecurityConfig.java
@@ -0,0 +1,96 @@
+package it.enea.cruise.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
+import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.CorsConfigurationSource;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+
+@Configuration
+public class SecurityConfig {
+ @Bean
+ public SecurityFilterChain configure(HttpSecurity http) throws Exception {
+ return http
+ .cors(AbstractHttpConfigurer::disable)
+ .csrf(AbstractHttpConfigurer::disable)
+ .httpBasic(AbstractHttpConfigurer::disable)
+ .headers(headers -> headers.cacheControl(HeadersConfigurer.CacheControlConfig::disable))
+ .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .authorizeHttpRequests(requests -> requests.requestMatchers("/**").permitAll())
+ .build();
+ }
+
+ @Bean
+ public WebMvcConfigurer corsConfigurer() {
+ return new WebMvcConfigurer() {
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry
+ .addMapping("/**")
+ .allowedMethods("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS");
+ }
+ };
+ }
+
+ @Bean
+ CorsConfigurationSource corsConfigurationSource() {
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+ corsConfiguration.setAllowedOriginPatterns(List.of("*"));
+ corsConfiguration.setAllowedMethods(List.of("*"));
+ corsConfiguration.setAllowedHeaders(List.of("*"));
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", corsConfiguration);
+ return source;
+ }
+}
+/*
+
+import java.util.Arrays;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.CorsConfigurationSource;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+
+@Configuration
+public class CorsConfigurationConfig extends WebSecurityConfigurerAdapter {
+
+ @Bean
+ CorsConfigurationSource corsConfigurationSource() {
+ CorsConfiguration configuration = new CorsConfiguration();
+ configuration.addAllowedOrigin("*");
+ configuration.setAllowedMethods(Arrays.asList("POST, PUT, GET, OPTIONS, DELETE, PATCH"));
+ configuration.addAllowedHeader("*");
+ configuration.addAllowedMethod("*");
+
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", configuration);
+ return source;
+ }
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+
+ http
+ .authorizeRequests().anyRequest().permitAll().and()
+ .csrf().disable()
+ .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+ .and()
+ .httpBasic();
+ http.cors();
+
+ }
+
+}
+*/
diff --git a/gecoregistration/src/main/java/it/enea/cruise/config/SpringFoxConfig.java b/gecoregistration/src/main/java/it/enea/cruise/config/SpringFoxConfig.java
index 7c320ae0e6d100ce5c0da6394a5bd66b8525356c..d6b21760236985885e6b43baaa48b30ea7adddf3 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/config/SpringFoxConfig.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/config/SpringFoxConfig.java
@@ -1,3 +1,4 @@
+/*
package it.enea.cruise.config;
import java.util.ArrayList;
@@ -56,4 +57,4 @@ public class SpringFoxConfig {
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<>());
}
-}
\ No newline at end of file
+}*/
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/DataController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/DataController.java
index 9e5bfef9963364a0c9ff1b0f4978347958101e16..0912847763b3dbf5f02c5933208239f758e8e896 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/DataController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/DataController.java
@@ -28,7 +28,10 @@ import java.util.SortedSet;
import java.util.TreeSet;
import javax.imageio.ImageIO;
-import javax.ws.rs.POST;
+
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.ws.rs.POST;
import org.apache.commons.io.IOUtils;
import org.apache.hc.core5.annotation.Obsolete;
@@ -63,8 +66,6 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiParam;
import it.enea.cruise.data.ElectricMeterReading;
import it.enea.cruise.data.ElectricMeterReading.Line;
import it.enea.cruise.data.ElectricMeterReading.Period;
@@ -89,7 +90,7 @@ import it.enea.cruise.repositories.user.UserRepository;
import lombok.extern.log4j.Log4j2;
@RestController
-@Api(value = "DataController")
+@Tag(name = "Dati")
@EnableTransactionManagement
@Transactional
@Log4j2
@@ -354,16 +355,16 @@ public class DataController {
@POST
@PostMapping("/data/getConsumptionInAPeriod")
public ResponseEntity getConsumptionInAPeriod(
- @ApiParam(name = "token", type = "String", value = "The user's token", example = "", required = true) @RequestParam String token,
- @ApiParam(name = "startDate", type = "String", value = "Initial date of a period", example = "2021-03-01 00:00:00", required = true) @RequestParam String startDate,
- @ApiParam(name = "endDate", type = "String", value = "Final date of a period", example = "2021-03-06 23:59:59", required = true) @RequestParam String endDate)
+ @Parameter(name = "token", example = "", required = true) @RequestParam String token,
+ @Parameter(name = "startDate", example = "2021-03-01 00:00:00", required = true) @RequestParam String startDate,
+ @Parameter(name = "endDate", example = "2021-03-06 23:59:59", required = true) @RequestParam String endDate)
throws NumberFormatException, ParseException {
/*
* Questa funzione dovrebbe restituire i dati compresi tra un'ora di inizio e
* una di fine. Se la data di fine (non e' determinata, prendo i dati entro una
* settimana a partire da oggi).
*/
- Long userid = new Long(137); // to be modified when data from token will be available;
+ Long userid = 137L; // to be modified when data from token will be available;
Integer communityid = 4; // to be modified
Date start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startDate);
Date end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endDate);
@@ -429,19 +430,19 @@ public class DataController {
LocalTime rt = LocalTime.of((key.getHours()), key.getMinutes());
if (rt.isBefore(LocalTime.of(7, 0))) {
- dataset.addValue(new Long(values[8]), "low", localDate);
+ dataset.addValue(Long.valueOf(values[8]), "low", localDate);
colors[i] = Color.green;
} else if (rt.isBefore(LocalTime.of(8, 0))) {
- dataset.addValue(new Long(values[8]), "middle", localDate);
+ dataset.addValue(Long.valueOf(values[8]), "middle", localDate);
colors[i] = Color.yellow;
} else if (rt.isBefore(LocalTime.of(19, 0))) {
- dataset.addValue(new Long(values[8]), "high", localDate);
+ dataset.addValue(Long.valueOf(values[8]), "high", localDate);
colors[i] = Color.red;
} else if (rt.isBefore(LocalTime.of(23, 00))) {
- dataset.addValue(new Long(values[8]), "middle", localDate);
+ dataset.addValue(Long.valueOf(values[8]), "middle", localDate);
colors[i] = Color.yellow;
} else if (rt.isBefore(LocalTime.of(23, 59))) {
- dataset.addValue(new Long(values[8]), "low", localDate);
+ dataset.addValue(Long.valueOf(values[8]), "low", localDate);
colors[i] = Color.green;
}
i++;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/ExceptionController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/ExceptionController.java
index 15cd2ccbf5735aac9462e7aba9b747827f78e5d3..cdcb04cddad78d9836fd6155aa65e6d52b368251 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/ExceptionController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/ExceptionController.java
@@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
@ControllerAdvice
public class ExceptionController {
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/MailController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/MailController.java
index 328d4307894477c5e78aef428c79388c59ed842f..523549bceccba9296f3a69a097fb9b55e67796ac 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/MailController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/MailController.java
@@ -4,9 +4,11 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import javax.ws.rs.POST;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import it.enea.cruise.utils.FreeMarkerUtils;
+import jakarta.mail.MessagingException;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.ws.rs.POST;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -18,7 +20,6 @@ import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
import freemarker.template.TemplateException;
-import io.swagger.annotations.Api;
import it.enea.cruise.dto.LocalUserDTO;
import it.enea.cruise.model.user.User;
import it.enea.cruise.service.idp.IdpProvider;
@@ -30,7 +31,7 @@ import lombok.Setter;
import lombok.extern.log4j.Log4j2;
@RestController
-@Api(value = "UserController")
+@Tag(name = "Metodi utente")
@Log4j2
@RequiredArgsConstructor
@Getter
@@ -43,14 +44,8 @@ public class MailController {
@Autowired
IdpProvider idpClientManager;
- //@Autowired
- //private FreeMarkerConfigurer freemarkerConfigurer;
-
@NonNull
UserRepository userInterface;
-
- //@NonNull
- //IEncryptionManager encryptionManager;
@Value("${activationLink}")
private String activationLink;
@@ -79,8 +74,7 @@ public class MailController {
@PostMapping("/user/sendEmptyMailMassage")
public void sendEmptyMessage(
@RequestHeader(name = "Authorization", required=true) String token,
- String destination)
- throws IOException, TemplateException, MessagingException {
+ String destination) {
if (idpClientManager.isValid(token)) {
Map templateModel1 = new HashMap();
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/QueryController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/QueryController.java
index 3fe4511cf57b22ca6ce39d297782b73afa1ad2d2..a86fc8b561efccf1da48f1d1b51137b17049a549 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/QueryController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/QueryController.java
@@ -3,7 +3,8 @@ package it.enea.cruise.controller;
import java.util.List;
import java.util.ArrayList;
-import javax.ws.rs.POST;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.ws.rs.POST;
import it.enea.cruise.service.idp.IdpProvider;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
-import io.swagger.annotations.Api;
import it.enea.cruise.dto.ParametricQueryDTO;
import it.enea.cruise.dto.QueryParameterDTO;
import it.enea.cruise.model.user.ParametricQuery;
@@ -30,7 +30,7 @@ import it.enea.cruise.model.user.LocalQueryParameter;
import lombok.extern.log4j.Log4j2;
@RestController
-@Api(value = "QueryController")
+@Tag(name = "Metodi delle query")
@EnableTransactionManagement
/*@Transactional("dataTransactionManagerIDP")*/
@Log4j2
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/StructureController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/StructureController.java
index 85e08e9bda499c6ed8350e8d531f3e51d09439ac..44990dea7ff8d79d8e221e4f31dff6e0edd597d5 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/StructureController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/StructureController.java
@@ -8,12 +8,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.persistence.Entity;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Table;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Table;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
import org.reflections.Reflections;
import static org.reflections.scanners.Scanners.*;
@@ -317,7 +317,7 @@ public class StructureController {
log.info(user.getUserid().toString());
if (setUserMethod != null) setUserMethod.invoke(entity, user);
Method setUserIdMethod = entity.getClass().getMethod("setUserid", Integer.class);
- Integer userID = new Integer(user.getUserid().intValue());
+ Integer userID = user.getUserid().intValue();
if (setUserIdMethod != null) setUserIdMethod.invoke(entity, userID);
}
log.info(entity.toString());
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/UserController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/UserController.java
index eadd1315c4b48f4acc339858478e3b6dd1a49d61..df15ce934b9ed9217d5c8b7c981d28f1435b1f12 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/UserController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/UserController.java
@@ -10,7 +10,12 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import javax.mail.MessagingException;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.mail.MessagingException;
import ch.qos.logback.core.util.StringCollectionUtil;
import it.enea.scp.idp.sdk.model.UserDto;
@@ -33,11 +38,6 @@ import org.springframework.web.bind.annotation.RestController;
import org.json.JSONObject;
import freemarker.template.TemplateException;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponses;
-import io.swagger.annotations.ApiResponse;
import it.enea.cruise.dto.CommunityDTO;
import it.enea.cruise.dto.LocalUserDTO;
import it.enea.cruise.model.user.Community;
@@ -75,7 +75,7 @@ import lombok.extern.log4j.Log4j2;
*/
@RestController
-@Api(value = "UserController")
+@Tag(name = "Metodi utente", description = "GECO - Metodi per la gestione dell'utente")
@Transactional
@Log4j2
public class UserController {
@@ -281,10 +281,10 @@ public class UserController {
}
*/
- @ApiOperation(value = "Return a list of users from their email", response = User.class, tags = "")
+ @Operation(description = "Return a list of users from their email")
@GetMapping("/userFromEmail")
public ResponseEntity getUserDTOFromEmail(
- @ApiParam(name = "email", type = "String", value = "Subject string", example = "", required = true) @RequestParam("email") String email) {
+ @Parameter(name = "email", example = "", required = true) @RequestParam("email") String email) {
UserDto user = idpClientManager.getUserByEmail(email);
return new ResponseEntity(user,
@@ -303,10 +303,10 @@ public class UserController {
* @return: The user if found
* @return: NotFound if the user does not exist on DB
*/
- @ApiOperation(value = "Return a list of users from their subject code", response = User.class, tags = "")
+ @Operation(description = "Return a list of users from their subject code", tags = "")
@GetMapping("/userFromSubject")
public ResponseEntity getUserDTOFromSubject(
- @ApiParam(name = "subject", type = "String", value = "Subject string", example = "", required = true) @RequestParam("subject") String subject) {
+ @Parameter(name = "subject", example = "", required = true) @RequestParam("subject") String subject) {
User user;
LocalUserDTO lUserDTO = new LocalUserDTO();
try {
@@ -359,7 +359,7 @@ public class UserController {
@PostMapping("/user/register")
public ResponseEntity registerFromForm(
- @ApiParam(name = "user", type = "User", value = "User representation from theinput form", example = "", required = true)
+ @Parameter(name = "user", example = "", required = true)
@RequestBody LocalUserDTO user) {
/*
* Controllo che ci sia almeno la mail.
@@ -417,7 +417,7 @@ public class UserController {
uc1.setSubscriptiondate(new Date(System.currentTimeMillis()));
uc1.setActive(true);
tmpUser.setSingleUsercommunity(uc1);
- Role tmpRole = roleInterface.getById(new Long(2));
+ Role tmpRole = roleInterface.getById(2L);
UserRole ur = new UserRole();
ur.setCommunity(c);
ur.setUser(tmpUser);
@@ -460,10 +460,10 @@ public class UserController {
* @return: The number of participants, if the user is and admin
* @return: A forbidden message otherwise
*/
- @ApiOperation(value = "Get the number of users in a community from the administrator's token", response = User.class, tags = "")
+ @Operation(description = "Get the number of users in a community from the administrator's token", tags = "")
@PostMapping("/getNumberOfParticipants")
ResponseEntity> getNumberOfParticipants(
- @ApiParam(name = "token", type = "String", value = "The administrator's token", example = "", required = true) @RequestParam String token) {
+ @Parameter(name = "token", example = "", required = true) @RequestParam String token) {
User u = new User();
@@ -495,11 +495,11 @@ public class UserController {
* @return: The user, if the if the token belongs to an admin
* @return: A forbidden message otherwise
*/
- @ApiOperation(value = "Get a user in a community from the wallet(s)", response = User.class, tags = "")
+ @Operation(description = "Get a user in a community from the wallet(s)", tags = "")
@PostMapping("/getUserFromWallet")
ResponseEntity> getUserFromWallet(
@RequestBody List wallets,
- @ApiParam(name = "token", type = "String", value = "The administrator's token", example = "", required = true) @RequestParam String token) {
+ @Parameter(name = "token", description = "The administrator's token", example = "", required = true) @RequestParam String token) {
LocalUserDTO lUserDTO = new LocalUserDTO();
User u = new User();
@@ -563,10 +563,10 @@ public class UserController {
* @return: Forbidden if the token is not valid
* @return: Forbidden if the user is not an administrator
*/
- @ApiOperation(value = "Get all users in a community from the administrator's token", response = User.class, tags = "")
+ @Operation(description = "Get all users in a community from the administrator's token", tags = "")
@PostMapping("/getusercommunities")
ResponseEntity> getUserCommunities(
- @ApiParam(name = "token", type = "String", value = "The administrator's token", example = "", required = true) @RequestParam String token) {
+ @Parameter(name = "token", description = "The administrator's token", example = "", required = true) @RequestParam String token) {
User u = new User();
@@ -613,23 +613,22 @@ public class UserController {
}
- @ApiOperation(value = "Generate subject", response = String.class, tags = "")
+ @Operation(description = "Generate subject", tags = "")
@PostMapping("/generateSubject")
@Deprecated
ResponseEntity generateSubject(
- @ApiParam(name = "mail", type = "String", value = "The user's email", example = "", required = false)
+ @Parameter(name = "mail", description = "The user's email", example = "String")
@RequestBody String email) {
//String subject = encryptionManager.encrypt(email);
-
return new ResponseEntity("", HttpStatus.OK);
}
- @ApiOperation(value = "Generate email", response = String.class, tags = "")
+ @Operation(description = "Generate email", tags = "")
@PostMapping("/returnEmail")
@Deprecated
ResponseEntity generateEmail(
- @ApiParam(name = "Subject", type = "String", value = "The user's subject", example = "", required = false)
+ @Parameter(name = "Subject", description = "The user's subject", example = "String")
@RequestBody String subject) {
//String email = encryptionManager.decrypt(subject);
@@ -647,11 +646,11 @@ public class UserController {
* @return: Forbidden if the user is not an administrator
*/
- @ApiOperation(value = "Get all users if the requester is a platform admin", response = User.class, tags = "")
+ @Operation(description = "Get all users if the requester is a platform admin", tags = "")
@PostMapping("/getusers")
ResponseEntity> getUsers(
- @ApiParam(name = "token", type = "String", value = "The administrator's token", example = "", required = false) @RequestParam(required = false) String token,
- @ApiParam(name = "Authorization", type = "String", value = "The administrator's token", example = "", required = false) @RequestHeader(name = "Authorization", required = false) String tokenAuth) {
+ @Parameter(name = "token", example = "String", description = "The administrator's token") @RequestParam(required = false) String token,
+ @Parameter(name = "Authorization", example = "String", description = "The administrator's token") @RequestHeader(name = "Authorization", required = false) String tokenAuth) {
List users = new ArrayList();
List resultList = new ArrayList();
Boolean isValid = false;
@@ -739,13 +738,13 @@ public class UserController {
* @param: User: the user to be deleted
* @return: True if cancellation is complete
*/
- @ApiOperation(value = "Delete the user.", response = Boolean.class, tags = "")
+ @Operation(description = "Delete the user.", tags = "")
@DeleteMapping("/user/delete")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Token is null or not valid"),
- @ApiResponse(code = 500, message = "User cannot delete from DBs"),})
+ @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Token is null or not valid"),
+ @ApiResponse(responseCode = "500", description = "User cannot delete from DBs"),})
public ResponseEntity deleteUser(
- @ApiParam(name = "userToken", type = "String", value = "The user's IDP token or email", example = "", required = true) @RequestBody String userToken) {
+ @Parameter(name = "userToken", example = "String", description = "The user's IDP token or email", required = true) @RequestBody String userToken) {
// log.info("Deleting user with token = {} ", userToken);
if (userToken == null || userToken == "") {
@@ -808,13 +807,13 @@ public class UserController {
* if not.
*/
- @ApiOperation(value = "Login the user. Returns Http.OK and User object if username and password are valid, Http.Forbidden otherwise", response = User.class, tags = "")
+ @Operation(description = "Login the user. Returns Http.OK and User object if username and password are valid, Http.Forbidden otherwise", tags = "")
@PostMapping("/user/login")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Username or password are invalid")})
+ @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Username or password are invalid")})
ResponseEntity login(
- @ApiParam(name = "username", type = "String", value = "The username", example = "", required = true) @RequestParam String username,
- @ApiParam(name = "password", type = "String", value = "The password", example = "", required = true) @RequestParam String password) {
+ @Parameter(name = "username", example = "String", description = "The username", required = true) @RequestParam String username,
+ @Parameter(name = "password", example = "String", description = "The password", required = true) @RequestParam String password) {
if (StringUtils.isBlank(username) || StringUtils.isBlank(username)) {
log.info("Username or password are empty");
return new ResponseEntity<>(new LocalUserDTO(), HttpStatus.FORBIDDEN);
@@ -858,12 +857,12 @@ public class UserController {
* @param: User Token
* @return: True if the user is correctly logged out, false otherwise
*/
- @ApiOperation(value = "Logout the user. Returns Http.OK and User object if username and password are valid, Http.Forbidden otherwise", response = Boolean.class, tags = "")
+ @Operation(description = "Logout the user. Returns Http.OK and User object if username and password are valid, Http.Forbidden otherwise", tags = "")
@PostMapping("/user/logout")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 500, message = "Logout has failed for unknown causes")})
+ @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "500", description = "Logout has failed for unknown causes")})
ResponseEntity logout(
- @ApiParam(name = "token", type = "String", value = "The user's token", example = "", required = true) @RequestParam String token,
+ @Parameter(name = "token", example = "String", description = "The user's token", required = true) @RequestParam String token,
@RequestHeader(name = "Authorization", required = false) String tokenAuth) {
if (StringUtils.isBlank(token)) {
if (StringUtils.isBlank(tokenAuth)) {
@@ -889,14 +888,15 @@ public class UserController {
* @param: User Token
* @return: True if the user is the token is valid, false otherwise
*/
- @ApiOperation(value = "Check if the token is valid and return a boolean", response = Boolean.class, tags = "")
+ @Operation(description = "Check if the token is valid and return a boolean", tags = "")
@PostMapping("/user/isTokenValid")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Token not valid"),
- @ApiResponse(code = 500, message = "Token is null")})
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Token not valid"),
+ @ApiResponse(responseCode = "500", description = "Token is null")})
ResponseEntity checkToken(
@RequestHeader(name = "Authorization", required = false) String token,
- @ApiParam(name = "token", type = "String", value = "The user's token", example = "", required = false)
+ @Parameter(name = "token", example = "String",description = "The user's token")
@RequestParam(name = "token", required = false) String token2) {
token = StringUtils.isNotBlank(token) ? token : token2;
if (!StringUtils.isNotBlank(token)) {
@@ -919,10 +919,12 @@ public class UserController {
* @return: A list of Roles
*/
- @ApiOperation(value = "Return the list of the roles active on the platform", response = Role.class, tags = "")
+ @Operation(description = "Return the list of the roles active on the platform", tags = "")
@GetMapping("/role/listRoles")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 500, message = "Internal error")})
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "500", description = "Internal error")
+ })
ResponseEntity> getRoles() {
List result = roleInterface.findAll();
if (result != null) {
@@ -962,17 +964,19 @@ public class UserController {
* @param: User Token
* @return: the user's details if the token is valid, an error otherwise
*/
- @ApiOperation(value = "Check if the token is valid and return the user", response = Boolean.class, tags = "")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Token not valid or access forbidden"),
- @ApiResponse(code = 500, message = "Token is null")})
+ @Operation(description = "Check if the token is valid and return the user", tags = "")
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Token not valid or access forbidden"),
+ @ApiResponse(responseCode = "500", description = "Token is null")
+ })
@PostMapping("/user/getUserFromToken")
ResponseEntity getUserFromToken(
- @ApiParam(name = "token", type = "String", value = "The user's ID-Provider token", example = "", required = true)
+ @Parameter(name = "token", example = "String", description = "The user's ID-Provider token", required = true)
@RequestParam String token
) {
- if (token == null || token == "") {
+ if (token == null || token.isEmpty()) {
log.info("GetUserFromToken: Token is empty");
return new ResponseEntity<>(new LocalUserDTO(), HttpStatus.BAD_REQUEST);
}
@@ -1021,13 +1025,15 @@ public class UserController {
* @param: User Token
* @return: the user's details if the token is valid, an error otherwise
*/
- @ApiOperation(value = "Check if the token is valid and return the user's id", response = Boolean.class, tags = "")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Token not valid or access forbidden"),
- @ApiResponse(code = 500, message = "Token is null")})
+ @Operation(description = "Check if the token is valid and return the user's id", tags = "")
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Token not valid or access forbidden"),
+ @ApiResponse(responseCode = "500", description = "Token is null")
+ })
@PostMapping("/user/getUserIdFromToken")
ResponseEntity getUserFromIdToken(
- @ApiParam(name = "Authorization", type = "String", value = "The user's ID-Provider token", example = "", required = true) @RequestHeader(name = "Authorization", required = true) String token) {
+ @Parameter(name = "Authorization", example = "String", description = "The user's ID-Provider token", required = true) @RequestHeader(name = "Authorization", required = true) String token) {
User result = new User();
if (token == null || token == "") {
@@ -1059,7 +1065,7 @@ public class UserController {
*/
@PostMapping("/user/updatepassword")
public ResponseEntity updatePassword(
- @ApiParam(name = "Password", type = "Password", value = "User's new pasword", example = "", required = true)
+ @Parameter(name = "Password", example = "Password", description = "User's new pasword", required = true)
@RequestBody LocalUserDTO userDTO,
@RequestHeader(name = "Authorization", required = false) String token) {
@@ -1109,7 +1115,7 @@ public class UserController {
uc1.setSubscriptiondate(new Date(System.currentTimeMillis()));
uc1.setActive(true);
tmpUser.setSingleUsercommunity(uc1);
- Role tmpRole = roleInterface.getById(new Long(2));
+ Role tmpRole = roleInterface.getById(2L);
UserRole ur = new UserRole();
ur.setCommunity(c);
ur.setUser(tmpUser);
@@ -1137,13 +1143,15 @@ public class UserController {
* @param: User Token
* @return: the user's details if the token is valid, an error otherwise
*/
- @ApiOperation(value = "List the devices associated to a user", response = Boolean.class, tags = "")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Success"),
- @ApiResponse(code = 403, message = "Token not valid or access forbidden"),
- @ApiResponse(code = 500, message = "Token is null")})
+ @Operation(description = "List the devices associated to a user", tags = "")
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Success"),
+ @ApiResponse(responseCode = "403", description = "Token not valid or access forbidden"),
+ @ApiResponse(responseCode = "500", description = "Token is null")
+ })
@PostMapping("/user/getDevices")
ResponseEntity> getDevices(
- @ApiParam(name = "token", type = "String", value = "The user's ID-Provider token", example = "", required = true) @RequestParam String token) {
+ @Parameter(name = "token", example = "String", description = "The user's ID-Provider token", required = true) @RequestParam String token) {
List result = new ArrayList();
@@ -1215,50 +1223,6 @@ public class UserController {
return persistNewUser(u, c, r);
}
-//
-// private void deleteUserBySubject(String subject) {
-// User newUser;
-// try {
-// newUser = userInterface.findById(new Long(159)).get();
-// } catch (Exception e) {
-// newUser = null;
-// }
-//
-// UserRole ur = newUser.getUserroles().get(0);
-// userRoleInterface.delete(ur);
-// userRoleInterface.flush();
-//
-// if (newUser != null) {
-// userInterface.delete(newUser);
-// userInterface.flush();
-// }
-//
-// }
-//
-// private User getAndUpdateUserFromSubject(String token) {
-// String subject = JWTManager.getSubject(token);
-// User u = userInterface.findBySubject(subject);
-// if (u == null) {
-// // l'utente non e' registrato...
-// u = JWTManager.jwt2User(token);
-// Community community = communityInterface.findByCommunityid(u.getTmpCommunity());
-// for (String localRole : u.getKeycloakRoles()) {
-// Role dbRole = roleInterface.findByRolename(localRole);
-// if (dbRole.getId() > 0) {
-// u.addRole(dbRole);
-// }
-// }
-// UserCommunity uc1 = new UserCommunity();
-// uc1.setCommunity(community);
-// uc1.setUser(u);
-// uc1.setWallet(u.getTmpWallet());
-// u.setSingleUsercommunity(uc1);
-// userInterface.save(u);
-// }
-//
-// return u;
-//
-// }
public User getUserFromSubject(String subject) {
User user = new User();
diff --git a/gecoregistration/src/main/java/it/enea/cruise/controller/idpController.java b/gecoregistration/src/main/java/it/enea/cruise/controller/idpController.java
index fdf9ebe4c90c34ed14fec6f252c00d987757d080..203a1b4924e646639f82f4deb743a63139d8a01c 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/controller/idpController.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/controller/idpController.java
@@ -2,6 +2,8 @@ package it.enea.cruise.controller;
import java.util.List;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import it.enea.cruise.service.idp.IdpProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -10,13 +12,11 @@ import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.bind.annotation.GetMapping;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
import it.enea.scp.idp.sdk.model.UserDto;
import it.enea.cruise.service.idp.IEncryptionManager;
@Controller
-@Api(value = "idpUserController")
+@Tag(name = "Metodi IDP")
@EnableTransactionManagement
public class idpController {
@@ -26,7 +26,7 @@ public class idpController {
@Autowired
IdpProvider idpClientManager;
- @ApiOperation(value = "Return a list of users", response = UserDto.class, tags = "")
+ @Operation(description = "Return a list of users", tags = "")
@GetMapping("/idp/usersFromIdp")
public ResponseEntity> getUserFromIdp(){
List userDto = idpClientManager.userList();
@@ -36,6 +36,4 @@ public class idpController {
HttpStatus.FOUND);
}
-
-
}
diff --git a/gecoregistration/src/main/java/it/enea/cruise/data/InputParameters.java b/gecoregistration/src/main/java/it/enea/cruise/data/InputParameters.java
index 32eb84aee9db6fc2ecfb2fb999fffcd754c5a351..f93576376c131d2f9bef4a898eee075491ab1719 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/data/InputParameters.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/data/InputParameters.java
@@ -14,87 +14,88 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
public class InputParameters {
- @JsonInclude(JsonInclude.Include.NON_NULL)
- private Integer communityid;
- @JsonInclude(JsonInclude.Include.NON_NULL)
- private Integer queryid;
- @JsonInclude(JsonInclude.Include.NON_NULL)
- private Integer flowid;
-
- @JsonIgnore
- private String token;
-
- @JsonIgnore
- private String language;
-
- @JsonIgnore
- private Integer userid;
-
- @JsonIgnore
- private HashMap parameters = new HashMap();
-
-
- @Override
- public String toString() {
- String toString = "{";
- for (String key : parameters.keySet()) {
- toString = toString + "\n\t" + key + ":" + parameters.get(key) +",";
- }
-
- return toString.substring(0, toString.length()-1) + "\n}";
- }
-
-
- public void setToken(String token) {
- this.parameters.put("token", token);
- this.token = token;
- }
-
- public void setCommunityid(Integer communityid) {
- if (communityid != null) {
- this.parameters.put("communityid", communityid.toString());
- this.communityid = communityid;
- }
- }
-
- public void setCommunityid(String communityid) {
- if (communityid != null) {
- this.parameters.put("communityid", communityid);
- this.communityid = new Integer(communityid);
- }
- }
-
- public void setQueryid(Integer queryid) {
- if (queryid != null) {
- this.parameters.put("queryid", queryid.toString());
- this.queryid = queryid;
- }
- }
-
- public void setParameters(Map otherParameters) {
- for (String key : otherParameters.keySet()) {
- log.info(key, otherParameters.get(key));
- if(otherParameters.get(key) != null ) {
- this.parameters.put(key.trim(), otherParameters.get(key).toString());
- }
- }
-
- }
- public void setFlowid(Integer flowid) {
- if (flowid != null) {
- this.parameters.put("flowid", flowid.toString());
- this.flowid = flowid;
- }
- }
-
- public void setLanguage(String language) {
- this.parameters.put("language", language);
- this.language = language;
- }
-
- public void setUserid(Integer userid) {
- this.parameters.put("userid", userid.toString());
- this.userid = userid;
- }
-
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Integer communityid;
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Integer queryid;
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Integer flowid;
+
+ @JsonIgnore
+ private String token;
+
+ @JsonIgnore
+ private String language;
+
+ @JsonIgnore
+ private Integer userid;
+
+ @JsonIgnore
+ private HashMap parameters = new HashMap();
+
+
+ @Override
+ public String toString() {
+ String toString = "{";
+ for (String key : parameters.keySet()) {
+ toString = toString + "\n\t" + key + ":" + parameters.get(key) + ",";
+ }
+
+ return toString.substring(0, toString.length() - 1) + "\n}";
+ }
+
+
+ public void setToken(String token) {
+ this.parameters.put("token", token);
+ this.token = token;
+ }
+
+ public void setCommunityid(Integer communityid) {
+ if (communityid != null) {
+ this.parameters.put("communityid", communityid.toString());
+ this.communityid = communityid;
+ }
+ }
+
+ public void setCommunityid(String communityid) {
+ if (communityid != null) {
+ this.parameters.put("communityid", communityid);
+ this.communityid = Integer.valueOf(communityid);
+ }
+ }
+
+ public void setQueryid(Integer queryid) {
+ if (queryid != null) {
+ this.parameters.put("queryid", queryid.toString());
+ this.queryid = queryid;
+ }
+ }
+
+ public void setParameters(Map otherParameters) {
+ for (String key : otherParameters.keySet()) {
+ log.info(key, otherParameters.get(key));
+ if (otherParameters.get(key) != null) {
+ this.parameters.put(key.trim(), otherParameters.get(key).toString());
+ }
+ }
+
+ }
+
+ public void setFlowid(Integer flowid) {
+ if (flowid != null) {
+ this.parameters.put("flowid", flowid.toString());
+ this.flowid = flowid;
+ }
+ }
+
+ public void setLanguage(String language) {
+ this.parameters.put("language", language);
+ this.language = language;
+ }
+
+ public void setUserid(Integer userid) {
+ this.parameters.put("userid", userid.toString());
+ this.userid = userid;
+ }
+
}
diff --git a/gecoregistration/src/main/java/it/enea/cruise/dto/FlowDTO.java b/gecoregistration/src/main/java/it/enea/cruise/dto/FlowDTO.java
index 2f038757c7433b7fade65d1427ed20c3fd34ee03..58df3fec10c67275049105652f47e177e956d062 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/dto/FlowDTO.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/dto/FlowDTO.java
@@ -1,6 +1,6 @@
package it.enea.cruise.dto;
-import javax.persistence.Id;
+import jakarta.persistence.Id;
import lombok.Getter;
import lombok.NoArgsConstructor;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/Cluster.java b/gecoregistration/src/main/java/it/enea/cruise/model/Cluster.java
index 15fb3f11e084e54d93b3fbb75e53d70f92a3f84e..33d09495cef248319360c6931e53664b3b69f515 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/Cluster.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/Cluster.java
@@ -2,9 +2,9 @@ package it.enea.cruise.model;
import java.io.Serializable;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/ClusterGroup.java b/gecoregistration/src/main/java/it/enea/cruise/model/ClusterGroup.java
index c0918ab56c18ec37c26b6bfd0b00d171238b014f..bcb95b1b20d13aa85f2f6044b3c8efd9c76483e1 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/ClusterGroup.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/ClusterGroup.java
@@ -1,9 +1,9 @@
package it.enea.cruise.model;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/data/DataConsumption.java b/gecoregistration/src/main/java/it/enea/cruise/model/data/DataConsumption.java
index bfa130eabd53ecc58b2d09545b1fcbcb9cb87454..754dee784f3d0a2f20fbf923acd10f2c1532406b 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/data/DataConsumption.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/data/DataConsumption.java
@@ -2,9 +2,9 @@ package it.enea.cruise.model.data;
import java.util.Date;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/structure/ForeignKey.java b/gecoregistration/src/main/java/it/enea/cruise/model/structure/ForeignKey.java
index f55be36734a6ab305a11215a8b5b658b6cd50e31..273ffcd128cf87d28a94e1cbe7ef40347ce4d72b 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/structure/ForeignKey.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/structure/ForeignKey.java
@@ -1,9 +1,9 @@
package it.enea.cruise.model.structure;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
import org.springframework.data.annotation.Immutable;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/structure/VwTableMetadata.java b/gecoregistration/src/main/java/it/enea/cruise/model/structure/VwTableMetadata.java
index 6973983a5a57cae49b7421b99ddca72209fed749..3261943840cf08625556b90c52a163c9b4f1cc62 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/structure/VwTableMetadata.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/structure/VwTableMetadata.java
@@ -1,7 +1,7 @@
package it.enea.cruise.model.structure;
import java.io.Serializable;
-import javax.persistence.*;
+import jakarta.persistence.*;
import org.springframework.data.annotation.Immutable;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/AdmittedQueryValues.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/AdmittedQueryValues.java
index 184396956322882f72df3cb3a284ed9e4910e681..5b95fbcd6058f104fa0680934dea73e1dcb1b798 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/AdmittedQueryValues.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/AdmittedQueryValues.java
@@ -3,7 +3,7 @@ package it.enea.cruise.model.user;
import java.util.List;
import java.util.Map;
-import javax.persistence.*;
+import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/Community.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/Community.java
index 1842fda8dcd43f65d7da4654bb07bd9f05537116..7fea9c4c5d2d0c5e2608d4111a87aaf4b7b33073 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/Community.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/Community.java
@@ -9,7 +9,7 @@ import lombok.Setter;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/Device.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/Device.java
index 0470e771accb2251c7b11f817561f9e3cac9f4db..f6cac720f09f9e069caac95385b3e43856980f9c 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/Device.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/Device.java
@@ -7,7 +7,7 @@ import lombok.Setter;
import lombok.ToString;
import org.springframework.stereotype.Component;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.io.Serializable;
import java.util.Date;
@@ -28,8 +28,7 @@ public class Device implements Serializable {
private int supplierid;
@ManyToOne
- @JoinColumn(name="userid", nullable=false)
- @MapsId("userid")
+ @JoinColumn(name="userid", nullable=false, insertable = false, updatable = false)
private User user;
private Integer userid;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/Flow.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/Flow.java
index 850dfbe53e92cdfdd5da55c181f9b97897c146d5..c72d655f2d947b210b41a04b2b64a9d25899684b 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/Flow.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/Flow.java
@@ -3,7 +3,7 @@ package it.enea.cruise.model.user;
import java.io.Serializable;
import java.util.List;
-import javax.persistence.*;
+import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunity.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunity.java
index 92e6440b49b7c075a05f169e8cb3d7b0b2194465..633dd7136b2d16935ba0706a347188aac699e605 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunity.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunity.java
@@ -2,7 +2,7 @@ package it.enea.cruise.model.user;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import javax.persistence.*;
+import jakarta.persistence.*;
@Entity
@@ -13,13 +13,13 @@ public class FlowCommunity {
private FlowCommunityId id = new FlowCommunityId();
@ManyToOne
- @JoinColumn(name = "flowid")
- @MapsId("flowid")
+ @JoinColumn(name = "flowid", insertable = false, updatable = false)
+ /*@MapsId("flowid")*/
private Flow flow;
@ManyToOne
- @JoinColumn(name = "communityid")
- @MapsId("communityid")
+ @JoinColumn(name = "communityid", insertable = false, updatable = false)
+ /*@MapsId("communityid")*/
private Community community;
@Column(name = "accountconsumption")
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunityId.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunityId.java
index 1229cbdc3d9da3be6ce74b714a43a063d030669a..27ce661ce495e9d1e92ab31ca004dd34c546fd63 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunityId.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/FlowCommunityId.java
@@ -4,9 +4,9 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Transient;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Transient;
import java.io.Serializable;
@Getter
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/LocalQueryParameter.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/LocalQueryParameter.java
index 408dea0889b9de3296da88514f5ff987f104e549..a621e26e0112d7747a4aaf8c2ce1ca3f27863bd1 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/LocalQueryParameter.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/LocalQueryParameter.java
@@ -3,7 +3,7 @@ package it.enea.cruise.model.user;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.util.List;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/OldUser.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/OldUser.java
index 3a7da924978db41e788d8c5c2fdf20440087a1d9..0bba4463ebeb9eae2d4d39c9b4dc63fc9d0213ec 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/OldUser.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/OldUser.java
@@ -4,16 +4,16 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Fetch;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/ParametricQuery.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/ParametricQuery.java
index 094f39e04466518e2482566529ac9dd4c1a4f2b1..87c2c15eda9c0d8d4f1344293d3a7c379d70871a 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/ParametricQuery.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/ParametricQuery.java
@@ -8,7 +8,7 @@ import lombok.Setter;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/Role.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/Role.java
index 17698fc82e75ef18420fd2a2e9d84f57c95d16f9..16c99381733bbfe53728b65ec4efcef1b054e0d5 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/Role.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/Role.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/User.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/User.java
index dd055f7ec8ebde125260cc266449bf5ee488a7e3..46feaebe01516650234aed46c8a64d6d913145df 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/User.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/User.java
@@ -8,7 +8,7 @@ import lombok.Setter;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import javax.persistence.*;
+import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunity.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunity.java
index 71e7979a6b5ba1582347277ccc2e37eeeedf3547..024e18aef4375b8c457c653844a4b54ee6a7b222 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunity.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunity.java
@@ -3,14 +3,14 @@ package it.enea.cruise.model.user;
import java.sql.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.MapsId;
-import javax.persistence.PreRemove;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.MapsId;
+import jakarta.persistence.PreRemove;
+import jakarta.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -37,14 +37,14 @@ public class UserCommunity {
private UserCommunityId id = new UserCommunityId();
@ManyToOne
- @JoinColumn(name = "userid")
- @MapsId("userid")
+ @JoinColumn(name = "userid", insertable = false, updatable = false)
+ /*@MapsId("userid")*/
//@JsonBackReference(value = "user-user_communities")
private User user;
@ManyToOne
- @JoinColumn(name = "communityid")
- @MapsId("communityid")
+ @JoinColumn(name = "communityid", insertable = false, updatable = false)
+ /*@MapsId("communityid")*/
//@JsonBackReference(value = "community-communities")
//@JsonIgnoreProperties("userCommunities")
private Community community;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunityId.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunityId.java
index a1e6be7d44364d9812f0da5b2ee5f4779c4403a9..f43625dac04dd67756726c66e51f832ffd2b6573 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunityId.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserCommunityId.java
@@ -2,9 +2,9 @@ package it.enea.cruise.model.user;
import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Transient;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Transient;
/**
* @author gianluca
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRole.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRole.java
index 96779cf05355ca47e69d27c2a02ff3ea264bd519..d099701aeafff7918c49121a51fcfe25ab82875d 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRole.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRole.java
@@ -2,14 +2,14 @@ package it.enea.cruise.model.user;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.MapsId;
-import javax.persistence.PreRemove;
-import javax.persistence.Table;
-import javax.persistence.Transient;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.MapsId;
+import jakarta.persistence.PreRemove;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -35,19 +35,18 @@ public class UserRole {
private UserRoleId id = new UserRoleId();
@ManyToOne
- @JoinColumn(name="userid")
- @MapsId("userid")
+ @JoinColumn(name="userid", insertable = false, updatable = false)
//@JsonBackReference(value = "user-userRoles")
private User user;
@ManyToOne
- @JoinColumn(name="roleid")
- @MapsId("rolesid")
+ @JoinColumn(name="roleid", insertable = false, updatable = false)
+ /*@MapsId("rolesid")*/
private Role role;
@ManyToOne
- @JoinColumn(name="communityid")
- @MapsId("communityid")
+ @JoinColumn(name="communityid", insertable = false, updatable = false)
+ /*@MapsId("communityid")*/
//@JsonBackReference(value = "community-userRoles")
private Community community;
diff --git a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRoleId.java b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRoleId.java
index f8d0868ee982b7ac892fea187630ed29ed093fab..6fcf2921ee3171b9b8ac55827132d2935de17c35 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRoleId.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/model/user/UserRoleId.java
@@ -3,9 +3,9 @@ package it.enea.cruise.model.user;
import java.io.Serializable;
import java.util.Objects;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Transient;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Transient;
/**
* @author gianluca
diff --git a/gecoregistration/src/main/java/it/enea/cruise/service/data/DataService.java b/gecoregistration/src/main/java/it/enea/cruise/service/data/DataService.java
index 26839eee81ce304dbef7eab0278042ec19ae9c08..0f5a132aa61d33a96c936f734571cfb8752bab27 100644
--- a/gecoregistration/src/main/java/it/enea/cruise/service/data/DataService.java
+++ b/gecoregistration/src/main/java/it/enea/cruise/service/data/DataService.java
@@ -1,25 +1,21 @@
package it.enea.cruise.service.data;
-import java.util.Map;
-import java.util.Optional;
-
import it.enea.cruise.exceptions.TokenNotValidException;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
import it.enea.cruise.model.user.ParametricQuery;
import it.enea.cruise.model.user.User;
-import it.enea.cruise.service.idp.IdpProvider;
-import it.enea.cruise.repositories.user.LocalQueryParameterRepository;
import it.enea.cruise.repositories.user.ParametricQueryRepository;
+import it.enea.cruise.repositories.user.UserRepository;
+import it.enea.cruise.service.idp.IdpProvider;
import it.enea.cruise.service.parametricQuery.ParametricQueryManager;
import it.enea.cruise.service.parametricQuery.ParametricQueryManager.ResultWithMetadata;
-import it.enea.cruise.repositories.user.UserRepository;
+import jakarta.transaction.Transactional;
+import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
-import javax.transaction.Transactional;
+import java.util.Map;
+import java.util.Optional;
@Service
@@ -41,14 +37,14 @@ public class DataService implements IDataService {
String token,
String language) {
- inputData.put("dataFromYear", startFromYears != null ? startFromYears.toString() : "0");
-
log.info("Input data:" + inputData);
log.info("Token to check:" + token);
+
if (idpClientManager.isValid(token)) {
User userdto = idpClientManager.getUserByToken(token);
User user = userInterface.findBySubject(userdto.getUuid());
inputData.put("userid", user.getUserid().toString());
+ inputData.put("dataFromYear", startFromYears != null ? startFromYears.toString() : "0");
Optional pq = pqueryInterface.findById(Long.valueOf(inputData.get("queryid")));
return pq.isPresent() ? pqm.executeQuery(pq.get(), inputData, language) : new ResultWithMetadata();
}
diff --git a/gecoregistration/src/main/java/it/enea/cruise/service/es/DataIndexingService.java b/gecoregistration/src/main/java/it/enea/cruise/service/es/DataIndexingService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7242cabe5d311cadd1aea172983289635ff663db
--- /dev/null
+++ b/gecoregistration/src/main/java/it/enea/cruise/service/es/DataIndexingService.java
@@ -0,0 +1,129 @@
+/*
+package it.enea.cruise.service.es;
+
+import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.elasticsearch.core.BulkRequest;
+import co.elastic.clients.elasticsearch.core.BulkResponse;
+import co.elastic.clients.elasticsearch.core.IndexRequest;
+import co.elastic.clients.elasticsearch.core.IndexResponse;
+import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.ResultSetExtractor;
+import org.springframework.stereotype.Service;
+
+import java.sql.ResultSetMetaData;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class DataIndexingService {
+ private static final int BATCH_SIZE = 1000;
+ private final ElasticsearchClient esClient;
+ private final JdbcTemplate jdbcTemplate;
+
+
+ public void indexDatabaseTable(String documentName, String query, String ...keys) {
+ jdbcTemplate.setFetchSize(0); // Enable streaming mode
+ //BulkRequest bulkRequest = new BulkRequest.Builder().build();
+ jdbcTemplate.query(query, (ResultSetExtractor) rs -> {
+ List bulkOperations = new ArrayList<>();
+ int rowCount = 0;
+
+ while (rs.next()) {
+ Map rowMap = new HashMap<>();
+ ResultSetMetaData metaData = rs.getMetaData();
+ int columnCount = metaData.getColumnCount();
+
+ for (int i = 1; i <= columnCount; i++) {
+ rowMap.put(metaData.getColumnName(i), rs.getObject(i));
+ }
+
+ bulkOperations.add(new BulkOperation.Builder()
+ .index(idx -> idx
+ .index(documentName)
+ .document(rowMap)
+ ).build()
+ );
+
+ rowCount++;
+
+ // Execute bulk request when batch size is reached
+ if (rowCount % BATCH_SIZE == 0) {
+ executeBulkRequest(bulkOperations);
+ bulkOperations.clear(); // Reset the bulk operations list
+ }
+ }
+
+ // Final bulk request for remaining records
+ if (!bulkOperations.isEmpty()) {
+ executeBulkRequest(bulkOperations);
+ }
+
+ return null; // Required by the ResultSetExtractor interface
+ });
+
+for (Map row : rows) {
+ StringBuilder keyBuilder = new StringBuilder();
+
+ IntStream.range(0, keys.length)
+ .forEach(index -> {
+ String key = keys[index];
+ keyBuilder.append(key).append(index < keys.length - 1 ? "_" : "");
+ });
+
+ indexRow(documentName, row, keyBuilder.toString());
+ }
+
+ }
+
+ private void executeBulkRequest(List bulkOperations) {
+ try {
+ BulkRequest bulkRequest = new BulkRequest.Builder()
+ .operations(bulkOperations)
+ .build();
+
+ BulkResponse bulkResponse = esClient.bulk(bulkRequest);
+
+ if (bulkResponse.errors()) {
+ // Handle failures here (e.g., log errors or retry)
+ bulkResponse.items().forEach(item -> {
+ if (item.error() != null) {
+ System.out.println("Bulk insert error: " + item.error().reason());
+ }
+ });
+ } else {
+ System.out.println("Batch insert succeeded for " + bulkOperations.size() + " records.");
+ }
+ } catch (Exception e) {
+ e.printStackTrace(); // Handle exception (log or retry)
+ }
+ }
+
+ private void indexRow(String documentName, Map row, String documentId) {
+ try {
+
+ // Construct the document as a Map
+ Map document = new HashMap<>(row);
+
+ // Index the document in Elasticsearch
+ IndexRequest