Hello Markus You can register servlet filters in Sling, but you can also register servlet filters in the OSGi HttpService using the whiteboard[0]. As the SlingMainServlet runs within the OSGi HttpService, you may have more success registering a filter there. I don't know where in the stack ParameterSupport is added, so YMMV. Let us know whether this does the trick.
Regards Julian [0] http://felix.apache.org/site/apache-felix-http-service.html#ApacheFelixHTTPService-UsingtheWhiteboard On Thu, Feb 24, 2011 at 4:29 PM, Markus Joschko <[email protected]> wrote: > Hi Vidar and all, > I think that this approach is not working. > I have the exact same use case. We don't want to put the _charset_ > parameter into every form. Therefore I tried to automatically add a > _charset_ request parameter to the request in a filter. > However that parameter never gets picked up as ParameterSupport is > created before the filter gets called (and then uses the reference to > the original servletrequest and not the wrapped one). > I could theoretically reinstantiate Parametersupport but that requires > knowledge of the servlet attribute key where parametersupport is > stored. And that is a private variable in parametersupport. > > Any other chance to not have the _charset_ parameter in every post > request sent to the system? > > Thanks, > Markus > > On Fri, Feb 11, 2011 at 2:25 PM, Vidar Ramdal <[email protected]> wrote: >> On Thu, Feb 10, 2011 at 11:56 PM, Peter Dotchev <[email protected]> wrote: >>> >>> Hi, >>> >>> Recently >>> http://dotev.blogspot.com/2011/02/posting-non-ascii-characters-in-web.html I >>> stumbled over this issue too. >>> >>> I don't want to add _charset_ input to all the forms. >>> Is there a way to set the request encoding to UTF-8? >>> IMHO it would be better if the request encoding is configurable like it is >>> done in Wicket. >>> >>> http://wiki.apache.org/tomcat/FAQ/CharacterEncoding Tomcat FAQ suggests >>> using a filter. >>> How can I do that in Sling? >> >> Hi, you can implement the javax.servlet.Filter interface and register >> your implementation as a Filter service: >> >> @Component(immediate = true) >> @Properties({ >> @Property(name = "filter.scope", value = "request", >> propertyPrivate = true), >> @Property(name = "filter.order", value = "-9", propertyPrivate = true) >> }) >> @Services({@Service(javax.servlet.Filter.class)}) >> public class YourFilter implements javax.servlet.Filter { >> ... >> } >> >> >> >> -- >> Vidar S. Ramdal <[email protected]> - http://www.idium.no >> Sommerrogata 13-15, N-0255 Oslo, Norway >> + 47 22 00 84 00 >> Quando omni flunkus moritatus! >> >
