Ok, geofence should be safe then. The issue should only affect test cases
anyways.

Torben

On Fri, Apr 8, 2016 at 4:24 AM, Emanuele Tajariol <[email protected]>
wrote:

> Hi Torben,
>
> > A quick text search shows that *GeoFence does use Spring MVC, and may be
> > affected by this issue*.
>
> Well, no interceptor is defined or called explicitly in GeoFence.
> The only class explicitly used is DispatcherServlet for handling the spring
> remoting calls.
> Furthermore, this class is only declared in the standalone version; this
> means
> that the gefence* community modules won't import the spring mvc dep into
> geoserver by themselves (they are in the dependency tree because the root
> pom
> imports them).
>
>    Cheers,
>    Emanuele
>
>
>
> Alle 22:11:46 di Wednesday 6 April 2016, Torben Barsballe ha scritto:
> > I discovered an interesting behavior when working with the latest
> GeoServer
> > in an application that uses Spring MVC.
> > This is more of an unexpected interaction between GeoServer/Spring 4 and
> > Spring MVC than a GeoServer bug, and should probably only be handled
> within
> > any GeoServer applications that actualy use Spring MVC.
> >
> > Spring MVC uses MappedInterceptor to add a HandlerInterceptor to specific
> > request paths.
> >
> > The GeoServerSystemTestSupport class creates a custom HttpServlet for
> > handling mock requests. In the service() method of this servlet, it calls
> > GeoServerExtensions.extensions(HandlerInterceptor.class,
> > applicationContext) to get all the global HandlerInterceptor instances to
> > apply to the mock request. As of the Spring 4 upgrade, this call now also
> > picks up all instances of MappedInterceptor.
> >
> > Since MappedInterceptor instances are handled by the dispatcher, this
> means
> > that all these MappedInterceptors *now get called twice*, which can lead
> to
> > various anomalous behaviors. This appears to *only affect test cases*,
> and
> > has no effect on regular GeoServer behavior.
> >
> > This can be prevented by adding an ExtensionFilter to the
> > applicationContext.xml:
> >
> > public class MappedInterceptorFilter implements ExtensionFilter {
> >     @Override
> >     public boolean exclude(String beanId, Object bean) {
> >         return bean instanceof MappedInterceptor;
> >     }
> > }
> >
> > Given that core GeoServer does not (to my knowledge) use Spring MVC, I am
> > unsure whether or not this is something that should be including in
> > GeoServer or left for downstream developers to handle (although I would
> > lean towards the latter).
> >
> > A quick text search shows that *GeoFence does use Spring MVC, and may be
> > affected by this issue*.
> >
> > Torben
>
>
> --
> ==
> GeoServer Professional Services from the experts!
> Visit http://goo.gl/NWWaa2 for more information.
> ==
>
> Ing. Emanuele Tajariol
> Technical Lead
>
> GeoSolutions S.A.S.
> Via di Montramito 3/A
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax:    +39 0584 1660272
> mob:   +39 380 2116282
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> -------------------------------------------------------
>
------------------------------------------------------------------------------
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to