package com.hubspot.baragon.auth;
import javax.ws.rs.container.DynamicFeature;
import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.FeatureContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.hubspot.baragon.config.AuthConfiguration;
@Singleton
public class BaragonAuthFeature implements DynamicFeature {
private final BaragonAuthFilter requestFilter;
private final AuthConfiguration authConfiguration;
@Inject
public BaragonAuthFeature(BaragonAuthFilter requestFilter, AuthConfiguration authConfiguration) {
this.requestFilter = requestFilter;
this.authConfiguration = authConfiguration;
}
@Override
public void configure(ResourceInfo resourceInfo, FeatureContext featureContext) {
if (authConfiguration.isEnabled()) {
if (resourceInfo.getResourceMethod().getAnnotation(NoAuth.class) == null
&& resourceInfo.getResourceClass().getAnnotation(NoAuth.class) == null) {
featureContext.register(requestFilter);
}
}
}
}