Skip to content

Commit 1a8b882

Browse files
authored
add golden signals filter into IndyDeployment because filter ordering is important (#1494)
1 parent 6470973 commit 1a8b882

File tree

3 files changed

+38
-6
lines changed

3 files changed

+38
-6
lines changed

addons/sli/jaxrs/src/main/java/org/commonjava/indy/sli/jaxrs/GoldenSignalsFilterMapper.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,16 @@
2727
import javax.servlet.DispatcherType;
2828
import javax.ws.rs.core.Application;
2929

30-
@ApplicationScoped
30+
// NOTE: I've added this initialization logic directly to the IndyDeployment so I can control the filter ordering.
31+
32+
//@ApplicationScoped
3133
public class GoldenSignalsFilterMapper
32-
extends IndyDeploymentProvider
34+
// extends IndyDeploymentProvider
3335
{
3436
@Inject
3537
private GoldenSignalsFilter goldenSignalsFilter;
3638

37-
@Override
39+
// @Override
3840
public DeploymentInfo getDeploymentInfo( final String contextRoot, final Application application )
3941
{
4042
DeploymentInfo di = new DeploymentInfo();

subsys/jaxrs/pom.xml

+4
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@
101101
<groupId>org.commonjava.indy</groupId>
102102
<artifactId>indy-subsys-honeycomb</artifactId>
103103
</dependency>
104+
<dependency>
105+
<groupId>org.commonjava.indy</groupId>
106+
<artifactId>indy-sli-jaxrs</artifactId>
107+
</dependency>
104108
<dependency>
105109
<groupId>io.swagger</groupId>
106110
<artifactId>swagger-annotations</artifactId>

subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/IndyDeployment.java

+29-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.commonjava.indy.bind.jaxrs.util.DeploymentInfoUtils;
2727
import org.commonjava.indy.bind.jaxrs.util.RequestScopeListener;
2828
import org.commonjava.indy.conf.UIConfiguration;
29+
import org.commonjava.indy.sli.jaxrs.GoldenSignalsFilter;
2930
import org.commonjava.indy.stats.IndyVersioning;
3031
import org.commonjava.indy.subsys.honeycomb.HoneycombFilter;
3132
import org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher;
@@ -77,6 +78,9 @@ public class IndyDeployment
7778
@Inject
7879
private HoneycombFilter honeycombFilter;
7980

81+
@Inject
82+
private GoldenSignalsFilter goldenSignalsFilter;
83+
8084
@Inject
8185
private IndyVersioning versioning;
8286

@@ -162,6 +166,10 @@ public Set<Class<?>> getClasses()
162166
new ImmediateInstanceFactory<HoneycombFilter>(
163167
this.honeycombFilter ) );
164168

169+
final FilterInfo goldenSignalsFilter = Servlets.filter( "Golden-Signals", GoldenSignalsFilter.class,
170+
new ImmediateInstanceFactory<>(
171+
this.goldenSignalsFilter ) );
172+
165173
final FilterInfo resourceManagementFilter =
166174
Servlets.filter( "Naming and Resource Management", ResourceManagementFilter.class,
167175
new ImmediateInstanceFactory<ResourceManagementFilter>(
@@ -170,7 +178,6 @@ public Set<Class<?>> getClasses()
170178
Servlets.filter( "ApiVersioning", ApiVersioningFilter.class,
171179
new ImmediateInstanceFactory<ApiVersioningFilter>(
172180
this.apiVersioningFilter ) );
173-
174181

175182
final DeploymentInfo di = new DeploymentInfo().addListener( Servlets.listener( RequestScopeListener.class ) )
176183
//.addInitParameter( "resteasy.scan", Boolean.toString( true ) )
@@ -179,9 +186,28 @@ public Set<Class<?>> getClasses()
179186
deployment )
180187
.addServlet( resteasyServlet )
181188

189+
.addFilter( goldenSignalsFilter )
190+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
191+
"/api/folo/*", DispatcherType.REQUEST )
192+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
193+
"/api/content/*", DispatcherType.REQUEST )
194+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
195+
"/api/promotion/*", DispatcherType.REQUEST )
196+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
197+
"/api/admin/stores/*",
198+
DispatcherType.REQUEST )
199+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
200+
"/api/browse/*", DispatcherType.REQUEST )
201+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
202+
"/api/remote/*", DispatcherType.REQUEST )
203+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
204+
"/api/hosted/*", DispatcherType.REQUEST )
205+
.addFilterUrlMapping( goldenSignalsFilter.getName(),
206+
"/api/group/*", DispatcherType.REQUEST )
207+
182208
.addFilter( honeycombFilter )
183-
.addFilterUrlMapping( honeycombFilter.getName(),
184-
"/api/*", DispatcherType.REQUEST )
209+
.addFilterUrlMapping( honeycombFilter.getName(), "/api/*",
210+
DispatcherType.REQUEST )
185211

186212
.addFilter( resourceManagementFilter )
187213
.addFilterUrlMapping( resourceManagementFilter.getName(),

0 commit comments

Comments
 (0)