From efda7285ad767fe6c7f8d782d00c562ba5bb9db1 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 20 Jul 2023 16:50:16 +0200 Subject: [PATCH] Cleanup and fix tests --- .../adapter/azure/helper/BuilderStub.java | 20 +++++++++- .../azure/helper/HttpRequestMessageStub.java | 19 +++++++++- .../azure/helper/HttpResponseMessageStub.java | 18 ++++++++- .../AzureFunctionInstanceInjectorTest.java | 1 - ...ionInstanceInjectorServiceLoadingTest.java | 1 - .../serverless/web/ProxyServletContext.java | 2 +- .../test/app/PetStoreSpringAppConfig.java | 37 +++++++++---------- 7 files changed, 70 insertions(+), 28 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/BuilderStub.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/BuilderStub.java index e16710220..94cd39f6d 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/BuilderStub.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/BuilderStub.java @@ -1,11 +1,27 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * 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 + * + * https://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 org.springframework.cloud.function.adapter.azure.helper; import java.util.HashMap; import java.util.Map; import com.microsoft.azure.functions.HttpResponseMessage; -import com.microsoft.azure.functions.HttpStatusType; import com.microsoft.azure.functions.HttpResponseMessage.Builder; +import com.microsoft.azure.functions.HttpStatusType; public class BuilderStub implements Builder { @@ -36,4 +52,4 @@ public class BuilderStub implements Builder { return new HttpResponseMessageStub(this.status, this.headers, this.body); } -} \ No newline at end of file +} diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpRequestMessageStub.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpRequestMessageStub.java index 75130f8b7..b7db2b7d1 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpRequestMessageStub.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpRequestMessageStub.java @@ -1,3 +1,19 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * 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 + * + * https://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 org.springframework.cloud.function.adapter.azure.helper; import java.net.URI; @@ -72,5 +88,4 @@ public class HttpRequestMessageStub implements HttpRequestMessage { public Builder createResponseBuilder(HttpStatus status) { return new BuilderStub().status(status); } - -} \ No newline at end of file +} diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpResponseMessageStub.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpResponseMessageStub.java index b7c1ca4d8..ffd939071 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpResponseMessageStub.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/helper/HttpResponseMessageStub.java @@ -1,3 +1,19 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * 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 + * + * https://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 org.springframework.cloud.function.adapter.azure.helper; import java.util.HashMap; @@ -34,4 +50,4 @@ public class HttpResponseMessageStub implements HttpResponseMessage { return this.body; } -} \ No newline at end of file +} diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/AzureFunctionInstanceInjectorTest.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/AzureFunctionInstanceInjectorTest.java index 3d46a42c9..7a52dee43 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/AzureFunctionInstanceInjectorTest.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/AzureFunctionInstanceInjectorTest.java @@ -20,7 +20,6 @@ import java.util.Optional; import java.util.function.Function; import com.microsoft.azure.functions.ExecutionContext; -import com.microsoft.azure.functions.HttpMethod; import com.microsoft.azure.functions.HttpRequestMessage; import com.microsoft.azure.functions.annotation.AuthorizationLevel; import com.microsoft.azure.functions.annotation.FunctionName; diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/FunctionInstanceInjectorServiceLoadingTest.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/FunctionInstanceInjectorServiceLoadingTest.java index 1de298c4b..0af13fcd7 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/FunctionInstanceInjectorServiceLoadingTest.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure/src/test/java/org/springframework/cloud/function/adapter/azure/injector/FunctionInstanceInjectorServiceLoadingTest.java @@ -20,7 +20,6 @@ import java.util.Iterator; import java.util.Optional; import java.util.ServiceLoader; import java.util.function.Function; -import java.util.logging.Logger; import com.microsoft.azure.functions.ExecutionContext; import com.microsoft.azure.functions.HttpMethod; diff --git a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ProxyServletContext.java b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ProxyServletContext.java index 14faea7a5..40fdbb1ca 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ProxyServletContext.java +++ b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ProxyServletContext.java @@ -217,7 +217,7 @@ public class ProxyServletContext implements ServletContext { @Override public Map getServletRegistrations() { - throw new UnsupportedOperationException("This ServletContext does not represent a running web container"); + return this.registrations; } @Override diff --git a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/test/java/org/springframework/cloud/function/test/app/PetStoreSpringAppConfig.java b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/test/java/org/springframework/cloud/function/test/app/PetStoreSpringAppConfig.java index 4dcff017c..2c61478af 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/test/java/org/springframework/cloud/function/test/app/PetStoreSpringAppConfig.java +++ b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/test/java/org/springframework/cloud/function/test/app/PetStoreSpringAppConfig.java @@ -72,27 +72,24 @@ public class PetStoreSpringAppConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { - http.csrf().disable() // need for POST - .addFilterBefore(new GenericFilterBean() { - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { - SecurityContext securityContext = SecurityContextHolder.getContext(); - securityContext.setAuthentication(UsernamePasswordAuthenticationToken.authenticated("user", "password", - Collections.singleton(new SimpleGrantedAuthority("USER")))); - HttpSession session = ((HttpServletRequest) request).getSession(); - session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext); - chain.doFilter(request, response); - } - }, SecurityContextHolderFilter.class) - .authorizeHttpRequests((requests) -> requests - .requestMatchers("/", "/pets", "/pets/").hasAnyAuthority("USER") - .requestMatchers("/foo").hasAnyAuthority("FOO") - .anyRequest().authenticated() + http + .addFilterBefore(new GenericFilterBean() { + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + SecurityContext securityContext = SecurityContextHolder.getContext(); + securityContext.setAuthentication(UsernamePasswordAuthenticationToken.authenticated("user", "password", + Collections.singleton(new SimpleGrantedAuthority("USER")))); + HttpSession session = ((HttpServletRequest) request).getSession(); + session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext); + chain.doFilter(request, response); + } + }, SecurityContextHolderFilter.class) + .securityMatcher("/foo") + .authorizeHttpRequests(authorize -> authorize + .anyRequest().hasRole("FOO") ) - .exceptionHandling().accessDeniedHandler(accessDeniedHandler()).and() - .logout((logout) -> logout.permitAll()); - + .exceptionHandling(f -> f.accessDeniedHandler(accessDeniedHandler())); return http.build(); }