diff --git a/gravitee-apim-e2e/api-test/src/documentation/documentation.spec.ts b/gravitee-apim-e2e/api-test/src/documentation/documentation.spec.ts index 77dd548277f..fa48cda31d8 100644 --- a/gravitee-apim-e2e/api-test/src/documentation/documentation.spec.ts +++ b/gravitee-apim-e2e/api-test/src/documentation/documentation.spec.ts @@ -13,22 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import {afterAll, beforeAll, describe, expect} from '@jest/globals'; -import {ConfigurationApi} from '@gravitee/management-webclient-sdk/src/lib/apis/ConfigurationApi'; +import { afterAll, beforeAll, describe, expect } from '@jest/globals'; +import { ConfigurationApi } from '@gravitee/management-webclient-sdk/src/lib/apis/ConfigurationApi'; import { - forManagementAsAdminUser, - forManagementAsApiUser, - forPortalAsApplicationFrenchUser, - forPortalAsSimpleUser, + forManagementAsAdminUser, + forManagementAsApiUser, + forPortalAsApplicationFrenchUser, + forPortalAsSimpleUser, } from '@gravitee/utils/configuration'; -import {UsersApi} from '@gravitee/management-webclient-sdk/src/lib/apis/UsersApi'; -import {RoleScope} from '@gravitee/management-webclient-sdk/src/lib/models/RoleScope'; -import {APIsApi} from '@gravitee/management-webclient-sdk/src/lib/apis/APIsApi'; -import {ApisFaker} from '@gravitee/fixtures/management/ApisFaker'; -import {ApiLifecycleState} from '@gravitee/management-webclient-sdk/src/lib/models/ApiLifecycleState'; -import {Visibility} from '@gravitee/management-webclient-sdk/src/lib/models/Visibility'; -import {APIPagesApi} from '@gravitee/management-webclient-sdk/src/lib/apis/APIPagesApi'; -import {created, succeed, unauthorized} from '@lib/jest-utils'; +import { UsersApi } from '@gravitee/management-webclient-sdk/src/lib/apis/UsersApi'; +import { RoleScope } from '@gravitee/management-webclient-sdk/src/lib/models/RoleScope'; +import { APIsApi } from '@gravitee/management-webclient-sdk/src/lib/apis/APIsApi'; +import { ApisFaker } from '@gravitee/fixtures/management/ApisFaker'; +import { ApiLifecycleState } from '@gravitee/management-webclient-sdk/src/lib/models/ApiLifecycleState'; +import { Visibility } from '@gravitee/management-webclient-sdk/src/lib/models/Visibility'; +import { APIPagesApi } from '@gravitee/management-webclient-sdk/src/lib/apis/APIPagesApi'; +import { created, succeed, unauthorized } from '@lib/jest-utils'; import { PageType } from '@gravitee/management-webclient-sdk/src/lib/models/PageType'; import { ApiApi, GetPageByApiIdAndPageIdIncludeEnum } from '@gravitee/portal-webclient-sdk/src/lib/apis/ApiApi'; import { MetadataFormat } from '@gravitee/management-webclient-sdk/src/lib/models/MetadataFormat'; diff --git a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/policy/security/apikey/ApiKeyPlanBasedAuthenticationHandler.java b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/policy/security/apikey/ApiKeyPlanBasedAuthenticationHandler.java deleted file mode 100644 index 3486d3e78ae..00000000000 --- a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/policy/security/apikey/ApiKeyPlanBasedAuthenticationHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (C) 2015 The Gravitee team (http://gravitee.io) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.gravitee.gateway.handlers.api.policy.security.apikey; - -import io.gravitee.definition.model.Plan; -import io.gravitee.gateway.api.ExecutionContext; -import io.gravitee.gateway.api.service.ApiKey; -import io.gravitee.gateway.security.core.AuthenticationContext; -import io.gravitee.gateway.security.core.AuthenticationHandler; -import io.gravitee.gateway.security.core.AuthenticationPolicy; -import java.util.List; -import java.util.Optional; - -/** - * @author David BRASSELY (david.brassely at graviteesource.com) - * @author GraviteeSource Team - */ -public class ApiKeyPlanBasedAuthenticationHandler implements AuthenticationHandler { - - private static final String APIKEY_CONTEXT_ATTRIBUTE = "apikey"; - - private final AuthenticationHandler handler; - private final Plan plan; - - public ApiKeyPlanBasedAuthenticationHandler(final AuthenticationHandler handler, final Plan plan) { - this.handler = handler; - this.plan = plan; - } - - @Override - public boolean canHandle(AuthenticationContext authenticationContext) { - if (!authenticationContext.contains(APIKEY_CONTEXT_ATTRIBUTE)) { - return false; - } - Optional optApikey = (Optional) authenticationContext.get(APIKEY_CONTEXT_ATTRIBUTE); - return optApikey.isPresent() && optApikey.get().getPlan().equals(plan.getId()); - } - - @Override - public String name() { - return handler.name(); - } - - @Override - public int order() { - return handler.order(); - } - - @Override - public List handle(ExecutionContext executionContext) { - return handler.handle(executionContext); - } -} diff --git a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandler.java b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandler.java index 323e029b0de..083055d1f50 100644 --- a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandler.java +++ b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandler.java @@ -16,9 +16,9 @@ package io.gravitee.gateway.handlers.api.security; import io.gravitee.definition.model.Plan; +import io.gravitee.gateway.api.service.ApiKey; import io.gravitee.gateway.security.core.AuthenticationContext; import io.gravitee.gateway.security.core.AuthenticationHandler; -import io.gravitee.repository.management.model.ApiKey; import java.util.Optional; /** diff --git a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/PlanBasedAuthenticationHandlerEnhancer.java b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/PlanBasedAuthenticationHandlerEnhancer.java index 7cb5c98ace3..39af1e370bb 100644 --- a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/PlanBasedAuthenticationHandlerEnhancer.java +++ b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/main/java/io/gravitee/gateway/handlers/api/security/PlanBasedAuthenticationHandlerEnhancer.java @@ -16,7 +16,6 @@ package io.gravitee.gateway.handlers.api.security; import io.gravitee.definition.model.Api; -import io.gravitee.gateway.handlers.api.policy.security.apikey.ApiKeyPlanBasedAuthenticationHandler; import io.gravitee.gateway.security.core.AuthenticationHandler; import io.gravitee.gateway.security.core.AuthenticationHandlerEnhancer; import io.gravitee.repository.management.api.SubscriptionRepository; @@ -25,7 +24,6 @@ import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; /** * @author David BRASSELY (david.brassely at graviteesource.com) diff --git a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/test/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandlerTest.java b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/test/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandlerTest.java index 8baa67e9b26..d46dc76ebb7 100644 --- a/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/test/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandlerTest.java +++ b/gravitee-apim-gateway/gravitee-apim-gateway-handlers/gravitee-apim-gateway-handlers-api/src/test/java/io/gravitee/gateway/handlers/api/security/ApiKeyPlanBasedAuthenticationHandlerTest.java @@ -24,7 +24,6 @@ import io.gravitee.definition.model.Plan; import io.gravitee.gateway.api.service.ApiKey; -import io.gravitee.gateway.handlers.api.policy.security.apikey.ApiKeyPlanBasedAuthenticationHandler; import io.gravitee.gateway.security.core.AuthenticationContext; import io.gravitee.gateway.security.core.AuthenticationHandler; import org.junit.Test; diff --git a/gravitee-apim-gateway/gravitee-apim-gateway-services/gravitee-apim-gateway-services-sync/src/test/java/io/gravitee/gateway/services/sync/cache/repository/SubscriptionRepositoryWrapperTest.java b/gravitee-apim-gateway/gravitee-apim-gateway-services/gravitee-apim-gateway-services-sync/src/test/java/io/gravitee/gateway/services/sync/cache/repository/SubscriptionRepositoryWrapperTest.java deleted file mode 100644 index de52616bfb3..00000000000 --- a/gravitee-apim-gateway/gravitee-apim-gateway-services/gravitee-apim-gateway-services-sync/src/test/java/io/gravitee/gateway/services/sync/cache/repository/SubscriptionRepositoryWrapperTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (C) 2015 The Gravitee team (http://gravitee.io) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.gravitee.gateway.services.sync.cache.repository; - -import static org.mockito.Mockito.*; - -import io.gravitee.node.api.cache.Cache; -import io.gravitee.repository.exceptions.TechnicalException; -import io.gravitee.repository.management.api.SubscriptionRepository; -import io.gravitee.repository.management.api.search.SubscriptionCriteria; -import io.gravitee.repository.management.model.Subscription; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; - -/** - * @author GraviteeSource Team - */ -@RunWith(MockitoJUnitRunner.class) -public class SubscriptionRepositoryWrapperTest { - - private SubscriptionRepositoryWrapper repository; - - @Mock - private SubscriptionRepository wrappedRepository; - - @Mock - private Cache cache; - - @Mock - private SubscriptionCriteria subscriptionCriteria; - - @Before - public void setUp() { - repository = new SubscriptionRepositoryWrapper(wrappedRepository, cache); - } - - @Test - public void search_should_call_wrapped_repository_cause_no_client_id() throws TechnicalException { - repository.search(subscriptionCriteria); - - verify(wrappedRepository).search(subscriptionCriteria); - verifyNoInteractions(cache); - } - - @Test - public void search_should_get_from_cache_cause_has_client_id() throws TechnicalException { - when(subscriptionCriteria.getClientId()).thenReturn("myClientId"); - when(subscriptionCriteria.getApis()).thenReturn(List.of("myApi")); - when(subscriptionCriteria.getPlans()).thenReturn(List.of("myPlan")); - - repository.search(subscriptionCriteria); - - verify(cache).get("myApi.myClientId.myPlan"); - verifyNoInteractions(wrappedRepository); - } -}