diff --git a/pom.xml b/pom.xml index c9d5b258e91394e8ae72e7966d64d9b85b4cc7e5..826a7ca4a58811d45e2a3b6469e6eb309c9c991f 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ <flyway-core.version>4.2.0</flyway-core.version> <gson.version>2.10.1</gson.version> <commons-dbcp.version>2.9.0</commons-dbcp.version> + <springdoc-openapi-starter-webmvc-ui.version>2.1.0</springdoc-openapi-starter-webmvc-ui.version> <lombok.version>1.18.28</lombok.version> </properties> @@ -103,6 +104,11 @@ <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> + <dependency> + <groupId>org.springdoc</groupId> + <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> + <version>${springdoc-openapi-starter-webmvc-ui.version}</version> + </dependency> </dependencies> <build> diff --git a/src/main/java/hbp/mip/configurations/OpenApiConfig.java b/src/main/java/hbp/mip/configurations/OpenApiConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..c02348d23264c86e826a236dd9a6444d050c302c --- /dev/null +++ b/src/main/java/hbp/mip/configurations/OpenApiConfig.java @@ -0,0 +1,18 @@ +package hbp.mip.configurations; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; + + +@Configuration +public class OpenApiConfig { + @Bean + public OpenAPI usersMicroserviceOpenAPI() { + return new OpenAPI() + .info(new Info().title("Portal-backend API") + .version("1.0")); + } +} \ No newline at end of file diff --git a/src/main/java/hbp/mip/configurations/SecurityConfiguration.java b/src/main/java/hbp/mip/configurations/SecurityConfiguration.java index 33b3279eaceb1e9ded52400e76d8e18c0cf5cf2e..29a5790b6648bf788f9aaa2e44d562a2eca919a9 100644 --- a/src/main/java/hbp/mip/configurations/SecurityConfiguration.java +++ b/src/main/java/hbp/mip/configurations/SecurityConfiguration.java @@ -60,7 +60,15 @@ public class SecurityConfiguration { SecurityFilterChain clientSecurityFilterChain(HttpSecurity http, ClientRegistrationRepository clientRegistrationRepo) throws Exception { if (authenticationEnabled) { http.authorizeHttpRequests(auth -> auth - .requestMatchers("/login/**", "/oauth2/**", "/actuator/**").permitAll() + .requestMatchers( + "/login/**", + "/oauth2/**", + "/actuator/**", + "/v3/api-docs", + "/v3/api-docs/**", + "/swagger-ui/**", + "/swagger-ui.html" + ).permitAll() .requestMatchers("/**").authenticated() ); diff --git a/src/main/java/hbp/mip/repositories/ExperimentRepository.java b/src/main/java/hbp/mip/repositories/ExperimentRepository.java index b70f75c00ee02b50542a850515237b5ed900fe91..445b413197e64e38f5082e7bbfb1e1d2de3e72b2 100644 --- a/src/main/java/hbp/mip/repositories/ExperimentRepository.java +++ b/src/main/java/hbp/mip/repositories/ExperimentRepository.java @@ -6,16 +6,16 @@ import hbp.mip.models.DTOs.ExperimentExecutionDTO; import hbp.mip.models.DTOs.UserDTO; import hbp.mip.utils.Exceptions.BadRequestException; import hbp.mip.utils.Exceptions.ExperimentNotFoundException; -import hbp.mip.utils.Exceptions.InternalServerError; import hbp.mip.utils.JsonConverters; import hbp.mip.utils.Logger; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.rest.core.annotation.RestResource; import java.util.Date; import java.util.UUID; - +@RestResource(exported = false) public interface ExperimentRepository extends CrudRepository<ExperimentDAO, UUID>, JpaSpecificationExecutor<ExperimentDAO> { ExperimentDAO findByUuid(UUID experimentUuid); diff --git a/src/main/java/hbp/mip/repositories/UserRepository.java b/src/main/java/hbp/mip/repositories/UserRepository.java index 11f5d3f6ca98b10301d7f58ec0e289fa573bbf63..505fcbbd195e6c08a76d93b2a3c996ab292f7059 100644 --- a/src/main/java/hbp/mip/repositories/UserRepository.java +++ b/src/main/java/hbp/mip/repositories/UserRepository.java @@ -2,7 +2,9 @@ package hbp.mip.repositories; import hbp.mip.models.DAOs.UserDAO; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.rest.core.annotation.RestResource; +@RestResource(exported = false) public interface UserRepository extends CrudRepository<UserDAO, String> { UserDAO findByUsername(String username); }