i have filter setup called requests particular servlet (account servlet in case). within context of google app engine project. when form submitted, request first goes google, , post servlet can retrieve uploaded blobs. form action is:
blobstoreservice.createuploadurl("/account/submit-order")
my filter mapping is:
<filter> <filter-name>account servlet filter</filter-name> <filter-class>com.myapp.filters.accountservletfilter</filter-class> </filter> <filter-mapping> <filter-name>account servlet filter</filter-name> <servlet-name>account servlet</servlet-name> </filter-mapping>
my servlet mapping is:
<servlet> <servlet-name>account servlet</servlet-name> <servlet-class>com.myapp.servlets.accountactionservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>account servlet</servlet-name> <url-pattern>/account/*</url-pattern> </servlet-mapping>
the filter works when perform request account url within app, reason, request coming in google (as post) not triggering filter. ideas?
i have verified if post form /account/foo (setting action of form, method post), servlet filter triggered, filter working, reason, when post request comes google, servlet invoked directly, , filter bypassed.
the second solution indicated in referenced balusc posting may prove effective. blobstore service employs requestdispatcher.forward() in place of http request, when in dev mode. in <filter-mapping>
entry use <dispatcher>request</dispatcher>
or <dispatcher>forward</dispatcher>
.