From e8b3f28099e095bf3b08efaf80674365859372b7 Mon Sep 17 00:00:00 2001 From: Gabriel Roldan Date: Wed, 13 Apr 2022 09:38:25 -0300 Subject: [PATCH] Relocate sources and build georchestra dependencies - fall back to Java 11. Georchestra modules won't build with Java 17. Revisit and possibly fix upstream. --- .github/workflows/codeql-analysis.yml | 5 +- .github/workflows/docker.yml | 13 +- .mvn/jvm.config | 6 + gateway/pom.xml | 221 +++++++++++++++++ .../app/GeorchestraGatewayApplication.java | 0 .../app/FiltersAutoConfiguration.java | 0 ...tePredicateFactoriesAutoConfiguration.java | 0 .../LdapSecurityAutoConfiguration.java | 0 .../OAuth2SecurityAutoConfiguration.java | 0 .../WebSecurityAutoConfiguration.java | 0 .../global/ResolveTargetGlobalFilter.java | 0 .../AddSecHeadersGatewayFilterFactory.java | 0 .../filter/headers/HeaderContributor.java | 0 .../headers/HeaderFiltersConfiguration.java | 0 .../RemoveHeadersGatewayFilterFactory.java | 0 ...veSecurityHeadersGatewayFilterFactory.java | 0 ...chestraOrganizationHeadersContributor.java | 0 .../GeorchestraUserHeadersContributor.java | 3 +- .../providers/SecProxyHeaderContributor.java | 0 .../QueryParamRoutePredicateFactory.java | 0 .../model/GatewayConfigProperties.java | 0 .../model/GeorchestraOrganizations.java | 0 .../model/GeorchestraTargetConfig.java | 0 .../gateway/model/GeorchestraUsers.java | 0 .../gateway/model/HeaderMappings.java | 0 .../gateway/model/RoleBasedAccessRule.java | 0 .../georchestra/gateway/model/Service.java | 0 .../BasicAuthenticatedUserMapper.java | 3 +- .../GatewaySecurityConfiguration.java | 5 - .../security/GeorchestraUserMapper.java | 0 .../GeorchestraUserMapperExtension.java | 0 .../ResolveGeorchestraUserGlobalFilter.java | 0 .../ServerHttpSecurityCustomizer.java | 0 .../accessrules/AccessRulesConfiguration.java | 0 .../accessrules/AccessRulesCustomizer.java | 0 .../LdapAccountManagementConfiguration.java | 0 .../ldap/LdapAuthenticatedUserMapper.java | 0 .../security/ldap/LdapConfigProperties.java | 0 .../ldap/LdapSecurityConfiguration.java | 0 ...h2AuthenticationTokenOpenIDUserMapper.java | 0 .../OAuth2AuthenticationTokenUserMapper.java | 3 +- .../security/oauth2/OAuth2Configuration.java | 0 .../oauth2/OAuth2ProxyConfigProperties.java | 0 .../main/resources/META-INF/spring.factories | 0 .../src}/main/resources/application.yml | 0 .../src}/main/resources/gateway.yml | 0 .../src}/main/resources/static/favicon.ico | Bin .../src}/main/resources/templates/index.html | 0 .../src}/main/resources/templates/login.html | 0 .../GeorchestraGatewayApplicationTests.java | 0 .../app/FiltersAutoConfigurationTest.java | 0 ...edicateFactoriesAutoConfigurationTest.java | 0 .../LdapSecurityAutoConfigurationTest.java | 0 .../OAuth2SecurityAutoConfigurationTest.java | 0 ...RemoveHeadersGatewayFilterFactoryTest.java | 0 ...curityHeadersGatewayFilterFactoryTest.java | 0 .../src}/test/resources/logback-test.xml | 0 .../resources/test-datadir/default.properties | 0 .../test-datadir/gateway/gateway.yaml | 0 georchestra | 2 +- pom.xml | 228 ++---------------- 61 files changed, 265 insertions(+), 224 deletions(-) create mode 100644 .mvn/jvm.config create mode 100644 gateway/pom.xml rename {src => gateway/src}/main/java/org/georchestra/gateway/app/GeorchestraGatewayApplication.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/autoconfigure/security/WebSecurityAutoConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/global/ResolveTargetGlobalFilter.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/AddSecHeadersGatewayFilterFactory.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/HeaderContributor.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/HeaderFiltersConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactory.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactory.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraOrganizationHeadersContributor.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java (97%) rename {src => gateway/src}/main/java/org/georchestra/gateway/filter/headers/providers/SecProxyHeaderContributor.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/handler/predicate/QueryParamRoutePredicateFactory.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/GatewayConfigProperties.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/GeorchestraOrganizations.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/GeorchestraTargetConfig.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/GeorchestraUsers.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/HeaderMappings.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/RoleBasedAccessRule.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/model/Service.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java (96%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java (95%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/GeorchestraUserMapper.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/GeorchestraUserMapperExtension.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ResolveGeorchestraUserGlobalFilter.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ServerHttpSecurityCustomizer.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/accessrules/AccessRulesConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/accessrules/AccessRulesCustomizer.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ldap/LdapAccountManagementConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ldap/LdapAuthenticatedUserMapper.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ldap/LdapConfigProperties.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/ldap/LdapSecurityConfiguration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenOpenIDUserMapper.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java (97%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/oauth2/OAuth2Configuration.java (100%) rename {src => gateway/src}/main/java/org/georchestra/gateway/security/oauth2/OAuth2ProxyConfigProperties.java (100%) rename {src => gateway/src}/main/resources/META-INF/spring.factories (100%) rename {src => gateway/src}/main/resources/application.yml (100%) rename {src => gateway/src}/main/resources/gateway.yml (100%) rename {src => gateway/src}/main/resources/static/favicon.ico (100%) rename {src => gateway/src}/main/resources/templates/index.html (100%) rename {src => gateway/src}/main/resources/templates/login.html (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/app/GeorchestraGatewayApplicationTests.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfigurationTest.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfigurationTest.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfigurationTest.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfigurationTest.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactoryTest.java (100%) rename {src => gateway/src}/test/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactoryTest.java (100%) rename {src => gateway/src}/test/resources/logback-test.xml (100%) rename {src => gateway/src}/test/resources/test-datadir/default.properties (100%) rename {src => gateway/src}/test/resources/test-datadir/gateway/gateway.yaml (100%) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4f109ee7..72f61608 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -34,12 +34,14 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 + with: + submodules: 'true' - name: "Setting up Java" uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '17' + java-version: '11' cache: 'maven' - name: Initialize CodeQL @@ -52,3 +54,4 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 + diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index cdd6473a..faa9f518 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -13,16 +13,21 @@ jobs: steps: - name: "Checking out" uses: actions/checkout@v3 + with: + submodules: 'true' - name: "Setting up Java" uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '17' + java-version: '11' cache: 'maven' - - name: mvn clean test verify - run: ./mvnw clean test verify -ntp -T1C + - name: Build georchestra dependencies + run: ./mvnw -f georchestra/ clean install -pl :georchestra-ldap-account-management -am -DskipTests -P-all -ntp + + - name: Build gateway + run: ./mvnw verify -pl :georchestra-gateway -ntp -T1C - name: Calculating docker image tag id: version @@ -30,7 +35,7 @@ jobs: - name: "Building a docker image" if: github.repository == 'georchestra/georchestra-gateway' - run: ./mvnw -DimageTag=${{ steps.version.outputs.VERSION }} spring-boot:build-image -ntp + run: ./mvnw -f gateway/ -DimageTag=${{ steps.version.outputs.VERSION }} spring-boot:build-image -ntp -DskipTests - name: "Logging in to docker.io" if: github.repository == 'georchestra/georchestra-gateway' diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 00000000..375b8412 --- /dev/null +++ b/.mvn/jvm.config @@ -0,0 +1,6 @@ +--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED + diff --git a/gateway/pom.xml b/gateway/pom.xml new file mode 100644 index 00000000..1074948b --- /dev/null +++ b/gateway/pom.xml @@ -0,0 +1,221 @@ + + + 4.0.0 + + org.georchestra + georchestra-gateway-parent + ${revision} + + georchestra-gateway + gateway + geOrchestra application gateway + + 11 + ${project.version} + georchestra/gateway:${imageTag} + + + + org.georchestra + georchestra-ldap-account-management + + + org.springframework.boot + spring-boot-starter-oauth2-client + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.security + spring-security-ldap + + + org.springframework.cloud + spring-cloud-starter-gateway + + + org.springframework.boot + spring-boot-starter-actuator + + + org.projectlombok + lombok + true + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + org.springframework.boot + spring-boot-autoconfigure-processor + true + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + + + + net.revelc.code.formatter + formatter-maven-plugin + + + + ${fmt.action} + + + + true + + ${fmt.skip} + ${maven.multiModuleProjectDirectory}/.mvn/formatter.xml + ${java.version} + ${java.version} + ${java.version} + + LF + UTF-8 + true + true + true + true + true + false + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-maven-and-java + + enforce + + + + + [11,) + + + [3.6.3,) + + + + + + + + com.github.ekryd.sortpom + sortpom-maven-plugin + + + verify + + ${pom.fmt.action} + + + + + ${pom.fmt.skip} + pom.xml + true + false + false + stop + strict + + + + org.codehaus.mojo + flatten-maven-plugin + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + true + + oss + + + + org.springframework.boot + spring-boot-maven-plugin + + + build-info + + build-info + + + + + + + + + + docker + + false + + + + + org.springframework.boot + spring-boot-maven-plugin + + + build-image + + build-image + + + + + + IF_NOT_PRESENT + + + + + + + + diff --git a/src/main/java/org/georchestra/gateway/app/GeorchestraGatewayApplication.java b/gateway/src/main/java/org/georchestra/gateway/app/GeorchestraGatewayApplication.java similarity index 100% rename from src/main/java/org/georchestra/gateway/app/GeorchestraGatewayApplication.java rename to gateway/src/main/java/org/georchestra/gateway/app/GeorchestraGatewayApplication.java diff --git a/src/main/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/autoconfigure/security/WebSecurityAutoConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/WebSecurityAutoConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/autoconfigure/security/WebSecurityAutoConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/autoconfigure/security/WebSecurityAutoConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/filter/global/ResolveTargetGlobalFilter.java b/gateway/src/main/java/org/georchestra/gateway/filter/global/ResolveTargetGlobalFilter.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/global/ResolveTargetGlobalFilter.java rename to gateway/src/main/java/org/georchestra/gateway/filter/global/ResolveTargetGlobalFilter.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/AddSecHeadersGatewayFilterFactory.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/AddSecHeadersGatewayFilterFactory.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/AddSecHeadersGatewayFilterFactory.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/AddSecHeadersGatewayFilterFactory.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/HeaderContributor.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/HeaderContributor.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/HeaderContributor.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/HeaderContributor.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/HeaderFiltersConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/HeaderFiltersConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/HeaderFiltersConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/HeaderFiltersConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactory.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactory.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactory.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactory.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactory.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactory.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactory.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactory.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraOrganizationHeadersContributor.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraOrganizationHeadersContributor.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraOrganizationHeadersContributor.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraOrganizationHeadersContributor.java diff --git a/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java similarity index 97% rename from src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java index c898af5b..ccb55d20 100644 --- a/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java +++ b/gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/GeorchestraUserHeadersContributor.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Optional; import java.util.function.Consumer; +import java.util.stream.Collectors; import org.georchestra.gateway.filter.headers.HeaderContributor; import org.georchestra.gateway.model.GeorchestraTargetConfig; @@ -55,7 +56,7 @@ public class GeorchestraUserHeadersContributor extends HeaderContributor { add(headers, "sec-tel", mappings.getTel(), user.map(GeorchestraUser::getTelephoneNumber)); List roles = user.map(GeorchestraUser::getRoles).orElse(List.of()).stream() - .map(r -> r.startsWith("ROLE_") ? r : "ROLE_" + r).toList(); + .map(r -> r.startsWith("ROLE_") ? r : "ROLE_" + r).collect(Collectors.toList()); add(headers, "sec-roles", mappings.getRoles(), roles); }); diff --git a/src/main/java/org/georchestra/gateway/filter/headers/providers/SecProxyHeaderContributor.java b/gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/SecProxyHeaderContributor.java similarity index 100% rename from src/main/java/org/georchestra/gateway/filter/headers/providers/SecProxyHeaderContributor.java rename to gateway/src/main/java/org/georchestra/gateway/filter/headers/providers/SecProxyHeaderContributor.java diff --git a/src/main/java/org/georchestra/gateway/handler/predicate/QueryParamRoutePredicateFactory.java b/gateway/src/main/java/org/georchestra/gateway/handler/predicate/QueryParamRoutePredicateFactory.java similarity index 100% rename from src/main/java/org/georchestra/gateway/handler/predicate/QueryParamRoutePredicateFactory.java rename to gateway/src/main/java/org/georchestra/gateway/handler/predicate/QueryParamRoutePredicateFactory.java diff --git a/src/main/java/org/georchestra/gateway/model/GatewayConfigProperties.java b/gateway/src/main/java/org/georchestra/gateway/model/GatewayConfigProperties.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/GatewayConfigProperties.java rename to gateway/src/main/java/org/georchestra/gateway/model/GatewayConfigProperties.java diff --git a/src/main/java/org/georchestra/gateway/model/GeorchestraOrganizations.java b/gateway/src/main/java/org/georchestra/gateway/model/GeorchestraOrganizations.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/GeorchestraOrganizations.java rename to gateway/src/main/java/org/georchestra/gateway/model/GeorchestraOrganizations.java diff --git a/src/main/java/org/georchestra/gateway/model/GeorchestraTargetConfig.java b/gateway/src/main/java/org/georchestra/gateway/model/GeorchestraTargetConfig.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/GeorchestraTargetConfig.java rename to gateway/src/main/java/org/georchestra/gateway/model/GeorchestraTargetConfig.java diff --git a/src/main/java/org/georchestra/gateway/model/GeorchestraUsers.java b/gateway/src/main/java/org/georchestra/gateway/model/GeorchestraUsers.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/GeorchestraUsers.java rename to gateway/src/main/java/org/georchestra/gateway/model/GeorchestraUsers.java diff --git a/src/main/java/org/georchestra/gateway/model/HeaderMappings.java b/gateway/src/main/java/org/georchestra/gateway/model/HeaderMappings.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/HeaderMappings.java rename to gateway/src/main/java/org/georchestra/gateway/model/HeaderMappings.java diff --git a/src/main/java/org/georchestra/gateway/model/RoleBasedAccessRule.java b/gateway/src/main/java/org/georchestra/gateway/model/RoleBasedAccessRule.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/RoleBasedAccessRule.java rename to gateway/src/main/java/org/georchestra/gateway/model/RoleBasedAccessRule.java diff --git a/src/main/java/org/georchestra/gateway/model/Service.java b/gateway/src/main/java/org/georchestra/gateway/model/Service.java similarity index 100% rename from src/main/java/org/georchestra/gateway/model/Service.java rename to gateway/src/main/java/org/georchestra/gateway/model/Service.java diff --git a/src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java similarity index 96% rename from src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java rename to gateway/src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java index 5a5f1443..edb82805 100644 --- a/src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/BasicAuthenticatedUserMapper.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import org.georchestra.gateway.model.GeorchestraUsers; import org.georchestra.security.model.GeorchestraUser; @@ -49,7 +50,7 @@ Optional map(UsernamePasswordAuthenticationToken token) { GeorchestraUser user = new GeorchestraUser(); Collection authorities = token.getAuthorities(); - List roles = authorities.stream().map(GrantedAuthority::getAuthority).toList(); + List roles = authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()); String name = token.getName(); Object principal = token.getPrincipal(); diff --git a/src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java similarity index 95% rename from src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java index 9c878602..12b58bc6 100644 --- a/src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/GatewaySecurityConfiguration.java @@ -71,11 +71,6 @@ public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http, }); log.info("Security filter chain initialized"); -// http.authorizeExchange()// -// .pathMatchers("/", "/header/**").permitAll()// -// .pathMatchers("/ws/**").permitAll()// -// .pathMatchers("/**").authenticated(); - return http.build(); } diff --git a/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapper.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/GeorchestraUserMapper.java rename to gateway/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapper.java diff --git a/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapperExtension.java b/gateway/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapperExtension.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/GeorchestraUserMapperExtension.java rename to gateway/src/main/java/org/georchestra/gateway/security/GeorchestraUserMapperExtension.java diff --git a/src/main/java/org/georchestra/gateway/security/ResolveGeorchestraUserGlobalFilter.java b/gateway/src/main/java/org/georchestra/gateway/security/ResolveGeorchestraUserGlobalFilter.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ResolveGeorchestraUserGlobalFilter.java rename to gateway/src/main/java/org/georchestra/gateway/security/ResolveGeorchestraUserGlobalFilter.java diff --git a/src/main/java/org/georchestra/gateway/security/ServerHttpSecurityCustomizer.java b/gateway/src/main/java/org/georchestra/gateway/security/ServerHttpSecurityCustomizer.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ServerHttpSecurityCustomizer.java rename to gateway/src/main/java/org/georchestra/gateway/security/ServerHttpSecurityCustomizer.java diff --git a/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesCustomizer.java b/gateway/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesCustomizer.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesCustomizer.java rename to gateway/src/main/java/org/georchestra/gateway/security/accessrules/AccessRulesCustomizer.java diff --git a/src/main/java/org/georchestra/gateway/security/ldap/LdapAccountManagementConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapAccountManagementConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ldap/LdapAccountManagementConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapAccountManagementConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/security/ldap/LdapAuthenticatedUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapAuthenticatedUserMapper.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ldap/LdapAuthenticatedUserMapper.java rename to gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapAuthenticatedUserMapper.java diff --git a/src/main/java/org/georchestra/gateway/security/ldap/LdapConfigProperties.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapConfigProperties.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ldap/LdapConfigProperties.java rename to gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapConfigProperties.java diff --git a/src/main/java/org/georchestra/gateway/security/ldap/LdapSecurityConfiguration.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapSecurityConfiguration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/ldap/LdapSecurityConfiguration.java rename to gateway/src/main/java/org/georchestra/gateway/security/ldap/LdapSecurityConfiguration.java diff --git a/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenOpenIDUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenOpenIDUserMapper.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenOpenIDUserMapper.java rename to gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenOpenIDUserMapper.java diff --git a/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java similarity index 97% rename from src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java rename to gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java index 2d0ca4c1..087d85e8 100644 --- a/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2AuthenticationTokenUserMapper.java @@ -24,6 +24,7 @@ import java.util.Map; import java.util.Optional; import java.util.function.Consumer; +import java.util.stream.Collectors; import org.georchestra.gateway.model.GeorchestraUsers; import org.georchestra.gateway.security.GeorchestraUserMapperExtension; @@ -79,7 +80,7 @@ protected List resolveRoles(Collection autho return false; } return true; - }).toList(); + }).collect(Collectors.toList()); return roles; } diff --git a/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2Configuration.java b/gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2Configuration.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/oauth2/OAuth2Configuration.java rename to gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2Configuration.java diff --git a/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2ProxyConfigProperties.java b/gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2ProxyConfigProperties.java similarity index 100% rename from src/main/java/org/georchestra/gateway/security/oauth2/OAuth2ProxyConfigProperties.java rename to gateway/src/main/java/org/georchestra/gateway/security/oauth2/OAuth2ProxyConfigProperties.java diff --git a/src/main/resources/META-INF/spring.factories b/gateway/src/main/resources/META-INF/spring.factories similarity index 100% rename from src/main/resources/META-INF/spring.factories rename to gateway/src/main/resources/META-INF/spring.factories diff --git a/src/main/resources/application.yml b/gateway/src/main/resources/application.yml similarity index 100% rename from src/main/resources/application.yml rename to gateway/src/main/resources/application.yml diff --git a/src/main/resources/gateway.yml b/gateway/src/main/resources/gateway.yml similarity index 100% rename from src/main/resources/gateway.yml rename to gateway/src/main/resources/gateway.yml diff --git a/src/main/resources/static/favicon.ico b/gateway/src/main/resources/static/favicon.ico similarity index 100% rename from src/main/resources/static/favicon.ico rename to gateway/src/main/resources/static/favicon.ico diff --git a/src/main/resources/templates/index.html b/gateway/src/main/resources/templates/index.html similarity index 100% rename from src/main/resources/templates/index.html rename to gateway/src/main/resources/templates/index.html diff --git a/src/main/resources/templates/login.html b/gateway/src/main/resources/templates/login.html similarity index 100% rename from src/main/resources/templates/login.html rename to gateway/src/main/resources/templates/login.html diff --git a/src/test/java/org/georchestra/gateway/app/GeorchestraGatewayApplicationTests.java b/gateway/src/test/java/org/georchestra/gateway/app/GeorchestraGatewayApplicationTests.java similarity index 100% rename from src/test/java/org/georchestra/gateway/app/GeorchestraGatewayApplicationTests.java rename to gateway/src/test/java/org/georchestra/gateway/app/GeorchestraGatewayApplicationTests.java diff --git a/src/test/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfigurationTest.java b/gateway/src/test/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfigurationTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfigurationTest.java rename to gateway/src/test/java/org/georchestra/gateway/autoconfigure/app/FiltersAutoConfigurationTest.java diff --git a/src/test/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfigurationTest.java b/gateway/src/test/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfigurationTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfigurationTest.java rename to gateway/src/test/java/org/georchestra/gateway/autoconfigure/app/RoutePredicateFactoriesAutoConfigurationTest.java diff --git a/src/test/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfigurationTest.java b/gateway/src/test/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfigurationTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfigurationTest.java rename to gateway/src/test/java/org/georchestra/gateway/autoconfigure/security/LdapSecurityAutoConfigurationTest.java diff --git a/src/test/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfigurationTest.java b/gateway/src/test/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfigurationTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfigurationTest.java rename to gateway/src/test/java/org/georchestra/gateway/autoconfigure/security/OAuth2SecurityAutoConfigurationTest.java diff --git a/src/test/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactoryTest.java b/gateway/src/test/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactoryTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactoryTest.java rename to gateway/src/test/java/org/georchestra/gateway/filter/headers/RemoveHeadersGatewayFilterFactoryTest.java diff --git a/src/test/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactoryTest.java b/gateway/src/test/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactoryTest.java similarity index 100% rename from src/test/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactoryTest.java rename to gateway/src/test/java/org/georchestra/gateway/filter/headers/RemoveSecurityHeadersGatewayFilterFactoryTest.java diff --git a/src/test/resources/logback-test.xml b/gateway/src/test/resources/logback-test.xml similarity index 100% rename from src/test/resources/logback-test.xml rename to gateway/src/test/resources/logback-test.xml diff --git a/src/test/resources/test-datadir/default.properties b/gateway/src/test/resources/test-datadir/default.properties similarity index 100% rename from src/test/resources/test-datadir/default.properties rename to gateway/src/test/resources/test-datadir/default.properties diff --git a/src/test/resources/test-datadir/gateway/gateway.yaml b/gateway/src/test/resources/test-datadir/gateway/gateway.yaml similarity index 100% rename from src/test/resources/test-datadir/gateway/gateway.yaml rename to gateway/src/test/resources/test-datadir/gateway/gateway.yaml diff --git a/georchestra b/georchestra index b7940d6a..d2c6b9b3 160000 --- a/georchestra +++ b/georchestra @@ -1 +1 @@ -Subproject commit b7940d6a9ee0cce0a8be3a7684ed7ceb7b02cb86 +Subproject commit d2c6b9b3985f672e1f30dc046e817831226e4ebc diff --git a/pom.xml b/pom.xml index eba9874a..9243c0c3 100644 --- a/pom.xml +++ b/pom.xml @@ -9,13 +9,15 @@ org.georchestra - georchestra-gateway + georchestra-gateway-parent ${revision} - gateway - geOrchestra application gateway + pom + gateway-root + + gateway + 21.0-SNAPSHOT - 17 2021.0.1 2.10.0 false @@ -35,77 +37,13 @@ pom import + + org.georchestra + georchestra-ldap-account-management + 22.1-SNAPSHOT + - - - org.georchestra - georchestra-ldap-account-management - 22.1-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-oauth2-client - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.security - spring-security-ldap - - - org.springframework.cloud - spring-cloud-starter-gateway - - - org.springframework.boot - spring-boot-starter-actuator - - - - - - - - - org.projectlombok - lombok - true - - - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - org.springframework.boot - spring-boot-autoconfigure-processor - true - - - org.springframework.boot - spring-boot-devtools - runtime - true - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - @@ -116,7 +54,6 @@ https://repo.spring.io/milestone - @@ -149,145 +86,16 @@ - - - net.revelc.code.formatter - formatter-maven-plugin - - - - ${fmt.action} - - - - true - - ${fmt.skip} - ${maven.multiModuleProjectDirectory}/.mvn/formatter.xml - ${java.version} - ${java.version} - ${java.version} - - LF - UTF-8 - true - true - true - true - true - false - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - enforce-maven-and-java - - enforce - - - - - [17,) - - - [3.6.3,) - - - - - - - - com.github.ekryd.sortpom - sortpom-maven-plugin - - - verify - - ${pom.fmt.action} - - - - - ${pom.fmt.skip} - pom.xml - true - false - false - stop - strict - - - - org.codehaus.mojo - flatten-maven-plugin - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - true - - oss - - - - org.springframework.boot - spring-boot-maven-plugin - - - build-info - - build-info - - - - - - - docker - - false - - - - - org.springframework.boot - spring-boot-maven-plugin - - - build-image - - build-image - - - - - - IF_NOT_PRESENT - - - - - + georchestra + true + + georchestra/commons + georchestra/testcontainers + georchestra/ldap-account-management +