I have posted the same in StackOverflow 
<https://stackoverflow.com/questions/61117569/what-is-the-recommended-way-of-registering-containerrequestfilter-in-dropwizard>
 
also. But did not get any reply. Anyone any thoughts on this one?

On Thursday, 9 April 2020 13:51:10 UTC+5:30, tuk wrote:
>
> 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/5ca6d412-6013-4e3c-a253-0984075eabb6%40googlegroups.com.

Reply via email to