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);