I am using 1.3.9 and working on moving to the latest dropwizard 2.x.

Right now I have a ContainerRequestFilter like below

@Authenticate
public class BasicAuthenticator implements ContainerRequestFilter {
          @Context
          private HttpServletRequest servletRequest;
          private final CollectorChannel collectorChannel ;
          private final ConfigStore configStore;

          public BasicAuthenticator(final CollectorChannel collectorChannel, 
final ConfigStore configStore)


          @Override
          public void filter(ContainerRequestContext requestContext) throws 
IOException {

                String requestIpAddress = servletRequest.getRemoteAddr();
                String requestHost = servletRequest.getRemoteHost();
                logger.info("Request originates from IP {} Host {}", 
requestIpAddress, requestHost);

                String authHeader = 
requestContext.getHeaderString("Authorization");

                Optional<User> user = AuthUtils.getUserBasicAuth(authHeader);
                if (!user.isPresent()) {
                    requestContext.abortWith(responseUnAuthenticated());
                    return;
                }

                if (!isAuthentic(user.get())) {
                    requestContext.abortWith(responseUnAuthenticated());
                }


                if (!isValidLiSource(requestIpAddress) && 
!isValidLiSource(requestHost)) {
                    requestContext.abortWith(responseUnauthorized());
                    return;
                }
            }

}


I register it like below


final BasicAuthenticator basicAuthenticator = new BasicAuthenticator(
collectorChannel, configStore);environment.jersey().register(
basicAuthenticator);



In migration doc 
<https://github.com/dropwizard/dropwizard/wiki/Upgrade-guide-1.3.x-to-2.0.x#context-injection-on-fields-in-resource-instances>
 it is mentioned like below-


Migrating resource instances with field context injections to Dropwizard 
> 2.0 involves pushing the field into a parameter in the desired endpoint


But filter() method does not get the context as argument. Can someone let 
me know what is the recommended way to register a ContainerRequestFilter 
like above in 2.x ?

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dropwizard-user/d3804846-92f9-455f-ac56-dce1962d87b3%40googlegroups.com.

Reply via email to