mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
upgrade dropwizard to 2.1
This commit is contained in:
@@ -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<User> {
|
||||
public class SecurityCheckFactory implements Function<ContainerRequest, User> {
|
||||
|
||||
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> user = apiKeyLogin();
|
||||
if (!user.isPresent()) {
|
||||
user = basicAuthenticationLogin();
|
||||
|
||||
@@ -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<ContainerRequest, ?> 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<SecurityCheck> {
|
||||
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<InjectionResolver<SecurityCheck>>() {
|
||||
}).in(Singleton.class);
|
||||
bind(SecurityCheckFactoryProvider.class).to(ValueParamProvider.class).in(Singleton.class);
|
||||
bind(userService).to(UserService.class);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<SessionHelper> {
|
||||
|
||||
@Context
|
||||
HttpServletRequest request;
|
||||
|
||||
@Override
|
||||
public SessionHelper provide() {
|
||||
return new SessionHelper(request);
|
||||
}
|
||||
}
|
||||
@@ -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<ContainerRequest, ?> 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<Context> {
|
||||
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<InjectionResolver<Context>>() {
|
||||
}).in(Singleton.class);
|
||||
bind(SessionHelperFactoryProvider.class).to(ValueParamProvider.class).in(Singleton.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user