From d21e5dfee445d2f012700e009994e40b6c5ab9d6 Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 14 Jul 2022 13:17:47 +0200 Subject: [PATCH] upgrade dropwizard to 2.1 --- pom.xml | 83 ++++++------------- .../frontend/auth/SecurityCheckFactory.java | 17 ++-- .../auth/SecurityCheckFactoryProvider.java | 42 +++++----- .../session/SessionHelperFactory.java | 17 ---- .../session/SessionHelperFactoryProvider.java | 38 ++++----- .../backend/service/PubSubServiceTest.java | 4 +- .../auth/SecurityCheckFactoryTest.java | 3 +- 7 files changed, 69 insertions(+), 135 deletions(-) delete mode 100644 src/main/java/com/commafeed/frontend/session/SessionHelperFactory.java diff --git a/pom.xml b/pom.xml index a290a1a8..7f085a5b 100644 --- a/pom.xml +++ b/pom.xml @@ -5,23 +5,28 @@ com.commafeed commafeed 2.6.0-SNAPSHOT - jar CommaFeed UTF-8 - 1.8 - 1.3.29 + 1.8 + 1.8 4.2.2 4.2.1 1.18.0 - - scm:git:https://github.com/Athou/commafeed.git - scm:git:https://github.com/Athou/commafeed.git - https://github.com/Athou/commafeed - + + + + io.dropwizard + dropwizard-dependencies + 2.1.1 + pom + import + + + commafeed @@ -33,15 +38,6 @@ - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - ${java.version} - ${java.version} - - pl.project13.maven git-commit-id-plugin @@ -189,7 +185,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.1.1 + 3.2.2 @@ -275,7 +271,10 @@ org.slf4j slf4j-api - 1.7.30 + + + org.slf4j + jcl-over-slf4j @@ -292,53 +291,30 @@ io.dropwizard dropwizard-core - ${dropwizard.version} - - - org.glassfish.hk2.external - aopalliance-repackaged - - - org.glassfish.hk2.external - javax.inject - - io.dropwizard dropwizard-hibernate - ${dropwizard.version} org.liquibase liquibase-core - 4.9.0 io.dropwizard dropwizard-assets - ${dropwizard.version} io.dropwizard dropwizard-forms - ${dropwizard.version} - - - org.glassfish.hk2.external - javax.inject - - io.dropwizard.metrics metrics-graphite - 4.0.5 io.dropwizard.metrics metrics-json - 4.0.5 @@ -347,10 +323,14 @@ 2.3.0 + + com.fasterxml.jackson.module + jackson-module-afterburner + + org.apache.httpcomponents httpclient - 4.5.13 commons-logging @@ -391,7 +371,6 @@ commons-codec commons-codec - 1.15 org.apache.commons @@ -426,17 +405,10 @@ 1.5.3 - com.rometools rome ${rome.version} - - - jdom - org.jdom - - com.rometools @@ -448,11 +420,7 @@ rome-opml ${rome.version} - - org.jdom - jdom2 - 2.0.6.1 - + org.ahocorasick ahocorasick @@ -510,7 +478,6 @@ com.h2database h2 - 2.1.210 mysql @@ -531,13 +498,11 @@ junit junit - 4.13.2 test org.mockito mockito-core - 2.28.2 test diff --git a/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java b/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java index 535d5aa5..00ba1781 100644 --- a/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java +++ b/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java @@ -4,16 +4,15 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Optional; import java.util.Set; +import java.util.function.Function; -import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.glassfish.jersey.server.internal.inject.AbstractContainerRequestValueFactory; +import org.glassfish.jersey.server.ContainerRequest; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserRole.Role; @@ -23,21 +22,17 @@ import com.commafeed.frontend.session.SessionHelper; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor -public class SecurityCheckFactory extends AbstractContainerRequestValueFactory { +public class SecurityCheckFactory implements Function { private static final String PREFIX = "Basic"; - @Context - HttpServletRequest request; - - @Inject - UserService userService; - + private final UserService userService; + private final HttpServletRequest request; private final Role role; private final boolean apiKeyAllowed; @Override - public User provide() { + public User apply(ContainerRequest req) { Optional user = apiKeyLogin(); if (!user.isPresent()) { user = basicAuthenticationLogin(); diff --git a/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactoryProvider.java b/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactoryProvider.java index 960236b7..efab5a31 100644 --- a/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactoryProvider.java +++ b/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactoryProvider.java @@ -1,18 +1,17 @@ package com.commafeed.frontend.auth; +import java.util.function.Function; + import javax.inject.Inject; import javax.inject.Singleton; +import javax.servlet.http.HttpServletRequest; -import org.glassfish.hk2.api.Factory; -import org.glassfish.hk2.api.InjectionResolver; -import org.glassfish.hk2.api.ServiceLocator; -import org.glassfish.hk2.api.TypeLiteral; import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.server.internal.inject.AbstractValueFactoryProvider; +import org.glassfish.jersey.server.ContainerRequest; +import org.glassfish.jersey.server.internal.inject.AbstractValueParamProvider; import org.glassfish.jersey.server.internal.inject.MultivaluedParameterExtractorProvider; -import org.glassfish.jersey.server.internal.inject.ParamInjectionResolver; import org.glassfish.jersey.server.model.Parameter; -import org.glassfish.jersey.server.spi.internal.ValueFactoryProvider; +import org.glassfish.jersey.server.spi.internal.ValueParamProvider; import com.commafeed.backend.model.User; import com.commafeed.backend.service.UserService; @@ -20,15 +19,21 @@ import com.commafeed.backend.service.UserService; import lombok.RequiredArgsConstructor; @Singleton -public class SecurityCheckFactoryProvider extends AbstractValueFactoryProvider { +public class SecurityCheckFactoryProvider extends AbstractValueParamProvider { + + private UserService userService; + private HttpServletRequest request; @Inject - public SecurityCheckFactoryProvider(final MultivaluedParameterExtractorProvider extractorProvider, final ServiceLocator injector) { - super(extractorProvider, injector, Parameter.Source.UNKNOWN); + public SecurityCheckFactoryProvider(final MultivaluedParameterExtractorProvider extractorProvider, UserService userService, + HttpServletRequest request) { + super(() -> extractorProvider, Parameter.Source.UNKNOWN); + this.userService = userService; + this.request = request; } @Override - protected Factory createValueFactory(final Parameter parameter) { + protected Function createValueProvider(Parameter parameter) { final Class classType = parameter.getRawType(); SecurityCheck securityCheck = parameter.getAnnotation(SecurityCheck.class); @@ -36,17 +41,11 @@ public class SecurityCheckFactoryProvider extends AbstractValueFactoryProvider { return null; } - if (classType.isAssignableFrom(User.class)) { - return new SecurityCheckFactory(securityCheck.value(), securityCheck.apiKeyAllowed()); - } else { + if (!classType.isAssignableFrom(User.class)) { return null; } - } - public static class SecurityCheckInjectionResolver extends ParamInjectionResolver { - public SecurityCheckInjectionResolver() { - super(SecurityCheckFactoryProvider.class); - } + return new SecurityCheckFactory(userService, request, securityCheck.value(), securityCheck.apiKeyAllowed()); } @RequiredArgsConstructor @@ -56,10 +55,9 @@ public class SecurityCheckFactoryProvider extends AbstractValueFactoryProvider { @Override protected void configure() { - bind(SecurityCheckFactoryProvider.class).to(ValueFactoryProvider.class).in(Singleton.class); - bind(SecurityCheckInjectionResolver.class).to(new TypeLiteral>() { - }).in(Singleton.class); + bind(SecurityCheckFactoryProvider.class).to(ValueParamProvider.class).in(Singleton.class); bind(userService).to(UserService.class); } } + } diff --git a/src/main/java/com/commafeed/frontend/session/SessionHelperFactory.java b/src/main/java/com/commafeed/frontend/session/SessionHelperFactory.java deleted file mode 100644 index 1f025366..00000000 --- a/src/main/java/com/commafeed/frontend/session/SessionHelperFactory.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.commafeed.frontend.session; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Context; - -import org.glassfish.jersey.server.internal.inject.AbstractContainerRequestValueFactory; - -public class SessionHelperFactory extends AbstractContainerRequestValueFactory { - - @Context - HttpServletRequest request; - - @Override - public SessionHelper provide() { - return new SessionHelper(request); - } -} \ No newline at end of file diff --git a/src/main/java/com/commafeed/frontend/session/SessionHelperFactoryProvider.java b/src/main/java/com/commafeed/frontend/session/SessionHelperFactoryProvider.java index dbe398f3..b9f099a0 100644 --- a/src/main/java/com/commafeed/frontend/session/SessionHelperFactoryProvider.java +++ b/src/main/java/com/commafeed/frontend/session/SessionHelperFactoryProvider.java @@ -1,30 +1,32 @@ package com.commafeed.frontend.session; +import java.util.function.Function; + import javax.inject.Inject; import javax.inject.Singleton; +import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Context; -import org.glassfish.hk2.api.Factory; -import org.glassfish.hk2.api.InjectionResolver; -import org.glassfish.hk2.api.ServiceLocator; -import org.glassfish.hk2.api.TypeLiteral; import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.server.internal.inject.AbstractValueFactoryProvider; +import org.glassfish.jersey.server.ContainerRequest; +import org.glassfish.jersey.server.internal.inject.AbstractValueParamProvider; import org.glassfish.jersey.server.internal.inject.MultivaluedParameterExtractorProvider; -import org.glassfish.jersey.server.internal.inject.ParamInjectionResolver; import org.glassfish.jersey.server.model.Parameter; -import org.glassfish.jersey.server.spi.internal.ValueFactoryProvider; +import org.glassfish.jersey.server.spi.internal.ValueParamProvider; @Singleton -public class SessionHelperFactoryProvider extends AbstractValueFactoryProvider { +public class SessionHelperFactoryProvider extends AbstractValueParamProvider { + + private HttpServletRequest request; @Inject - public SessionHelperFactoryProvider(final MultivaluedParameterExtractorProvider extractorProvider, final ServiceLocator injector) { - super(extractorProvider, injector, Parameter.Source.CONTEXT); + public SessionHelperFactoryProvider(final MultivaluedParameterExtractorProvider extractorProvider, HttpServletRequest request) { + super(() -> extractorProvider, Parameter.Source.CONTEXT); + this.request = request; } @Override - protected Factory createValueFactory(final Parameter parameter) { + protected Function createValueProvider(Parameter parameter) { final Class classType = parameter.getRawType(); Context context = parameter.getAnnotation(Context.class); @@ -32,26 +34,18 @@ public class SessionHelperFactoryProvider extends AbstractValueFactoryProvider { return null; } - if (classType.isAssignableFrom(SessionHelper.class)) { - return new SessionHelperFactory(); - } else { + if (!classType.isAssignableFrom(SessionHelper.class)) { return null; } - } - public static class SessionHelperInjectionResolver extends ParamInjectionResolver { - public SessionHelperInjectionResolver() { - super(SessionHelperFactoryProvider.class); - } + return r -> new SessionHelper(request); } public static class Binder extends AbstractBinder { @Override protected void configure() { - bind(SessionHelperFactoryProvider.class).to(ValueFactoryProvider.class).in(Singleton.class); - bind(SessionHelperInjectionResolver.class).to(new TypeLiteral>() { - }).in(Singleton.class); + bind(SessionHelperFactoryProvider.class).to(ValueParamProvider.class).in(Singleton.class); } } } diff --git a/src/test/java/com/commafeed/backend/service/PubSubServiceTest.java b/src/test/java/com/commafeed/backend/service/PubSubServiceTest.java index e5fa28df..8da36553 100644 --- a/src/test/java/com/commafeed/backend/service/PubSubServiceTest.java +++ b/src/test/java/com/commafeed/backend/service/PubSubServiceTest.java @@ -65,7 +65,7 @@ public class PubSubServiceTest { .withMethod("POST") .withPath("/hub")); Mockito.verify(feed, Mockito.never()).setPushTopic(Mockito.anyString()); - Mockito.verifyZeroInteractions(queues); + Mockito.verifyNoInteractions(queues); } @Test @@ -92,7 +92,7 @@ public class PubSubServiceTest { // Assert Mockito.verify(feed, Mockito.never()).setPushTopic(Mockito.anyString()); - Mockito.verifyZeroInteractions(queues); + Mockito.verifyNoInteractions(queues); } } \ No newline at end of file diff --git a/src/test/java/com/commafeed/frontend/auth/SecurityCheckFactoryTest.java b/src/test/java/com/commafeed/frontend/auth/SecurityCheckFactoryTest.java index 27176bc0..0453ebb1 100644 --- a/src/test/java/com/commafeed/frontend/auth/SecurityCheckFactoryTest.java +++ b/src/test/java/com/commafeed/frontend/auth/SecurityCheckFactoryTest.java @@ -23,8 +23,7 @@ public class SecurityCheckFactoryTest { UserService service = new UserService(null, null, null, null, null, null, null, postLoginActivities); - SecurityCheckFactory factory = new SecurityCheckFactory(null, false); - factory.userService = service; + SecurityCheckFactory factory = new SecurityCheckFactory(service, null, null, false); factory.cookieSessionLogin(sessionHelper); Mockito.verify(postLoginActivities).executeFor(userInSession);