From 37b25008b00c6dae03a025c6fff45cb1de564018 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Fri, 21 Jun 2019 15:22:27 +0200 Subject: [PATCH] DATAREST-1397 - Polishing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed the redeclaration of hasCorsConfigurationSource(…) in RepositoryRestHandlerMapping as it already inherits the one from BasePathAwareRestHandlerMapping. Removed @Override on BasePathAwareRestHandlerMapping.hasCorsConfigurationSource(…) as we need to compile against Spring 5.1, which doesn't expose the method. Downgrades from Spring HATEOAS 1.0 API usage in tests. --- .../rest/webmvc/jpa/LocalConfigCorsIntegrationTests.java | 3 +-- .../data/rest/webmvc/BasePathAwareHandlerMapping.java | 7 ++++--- .../data/rest/webmvc/RepositoryRestHandlerMapping.java | 9 --------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/LocalConfigCorsIntegrationTests.java b/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/LocalConfigCorsIntegrationTests.java index 32a2338a0..2322c5569 100755 --- a/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/LocalConfigCorsIntegrationTests.java +++ b/spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/jpa/LocalConfigCorsIntegrationTests.java @@ -23,7 +23,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.data.rest.tests.AbstractWebIntegrationTests; import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkRelation; import org.springframework.http.HttpHeaders; import org.springframework.test.context.ContextConfiguration; @@ -50,7 +49,7 @@ public class LocalConfigCorsIntegrationTests extends AbstractWebIntegrationTests @Test // DATAREST-1397 public void appliesRepositoryCorsConfiguration() throws Exception { - Link findItems = client.discoverUnique(LinkRelation.of("items")); + Link findItems = client.discoverUnique("items"); // Preflight request mvc.perform(options(findItems.expand().getHref()).header(HttpHeaders.ORIGIN, "http://far.far.example") diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/BasePathAwareHandlerMapping.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/BasePathAwareHandlerMapping.java index 188a79220..40aff25b5 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/BasePathAwareHandlerMapping.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/BasePathAwareHandlerMapping.java @@ -112,11 +112,12 @@ public class BasePathAwareHandlerMapping extends RequestMappingHandlerMapping { return super.lookupHandlerMethod(lookupPath, new CustomAcceptHeaderHttpServletRequest(request, mediaTypes)); } - /* - * (non-Javadoc) + /** + * No {@code @Override} as the method is only available in Spring 5.2, but needed to make CORS work in general on it. + * * @see org.springframework.web.servlet.handler.AbstractHandlerMapping#hasCorsConfigurationSource(java.lang.Object) + * @see https://github.com/spring-projects/spring-framework/issues/22273 */ - @Override protected boolean hasCorsConfigurationSource(Object handler) { return true; } diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestHandlerMapping.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestHandlerMapping.java index 55f799e8b..2024fdaa5 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestHandlerMapping.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestHandlerMapping.java @@ -190,15 +190,6 @@ public class RepositoryRestHandlerMapping extends BasePathAwareHandlerMapping { return AnnotationUtils.findAnnotation(type, RepositoryRestController.class) != null; } - /* - * (non-Javadoc) - * @see org.springframework.web.servlet.handler.AbstractHandlerMapping#hasCorsConfigurationSource(java.lang.Object) - */ - @Override - protected boolean hasCorsConfigurationSource(Object handler) { - return true; - } - /* * (non-Javadoc) * @see org.springframework.web.servlet.handler.AbstractHandlerMapping#extendInterceptors(java.util.List)