Hi Patrick, Filtering out X-AppEngine prefixed headers is intentional, and we certainly expect to continue doing so.
-Nick Johnson On Mon, Feb 1, 2010 at 8:29 PM, Patrick Linskey <plins...@gmail.com> wrote: > > (and Require Admin login isn't enough) > > That would be enough, but the only way to do that is to put the > limitation in the web.xml file, which is pretty far away from the > servlet in question. I want to make sure that someone doesn't > accidentally mis-configure the web.xml file to remove the admin > restriction. And I'd really rather not parse web.xml and apply all the > appropriate rules to do so. > > Also, I don't know whether or not Google guarantees that the X- > AppEngine-TaskName header is stripped from malicious incoming > requests. It looks like it does, but that's just based on my > observations. > > Thanks, > > -Patrick > > On Feb 1, 11:02 am, Eli Jones <eli.jo...@gmail.com> wrote: > > If you have a compelling reason for really locking down the task queue > url > > (and Require Admin login isn't enough), you could create a mechanism that > > creates a task name for each queued task.. and the task verifies that its > > name is "correct". > > > > You could have the task use the X-AppEngine-TaskName header to check its > > name.. > > > > So.. when you add a task to the queue.. you do something like this: > > > > taskName = getUniqueTaskName() > > nameHash = getHash(taskName) > > > > taskqueue.add(url = '/myTaskQueue', countdown = 0, > > name = taskName, > > params = {'nameHash' : nameHash}) > > > > and.. in the first part of the /myTaskQueue code.. you could have it > verify > > that the 'nameHash' param is equal to getHash() of the TaskName you grab > > from the header.. > > > > > > > > On Sat, Jan 30, 2010 at 4:07 PM, Patrick Linskey <plins...@gmail.com> > wrote: > > > Hi, > > > > > I'd like to programmatically ensure that my task queue servlets are > > > only invoked via the task queue. I've got a security constraint in my > > > web.xml, but I'd like to also check in code to avoid any potential mis- > > > configuration in the future. > > > > > Is there any supported means to do such a check? > > > > > I tried looking at the contents of the HttpServletRequest (isUserInRole > > > (), getAuthType(), getUserPrincipal(), getRemoteName()), to no avail. > > > I also tried UserServiceFactory.getUserService().isAdmin(), but > > > received an exception informing me that no user was logged in. > > > > > I can see that there are a number of task queue-specific HTTP headers. > > > Currently, I'm checking that X-AppEngine-TaskRetryCount is present, > > > and if so, assuming that the request has come from the task queue and > > > that it's therefore safe to process. Empirically, it looks like GAE > > > strips out the X-AppEngine-TaskRetryCount header when I specify it in > > > a curl-sourced request. Is this a safe assumption to rely on? Are > > > there plans to document a reliable way to ensure servlet security in a > > > task queue environment? Is there something else that I'm missing? > > > > > Also, in an ideal world, it'd be nice if request.isUserInRole("admin") > > > would return true at the appropriate times. > > > > > Thanks, > > > > > -Patrick > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "Google App Engine" group. > > > To post to this group, send email to google-appengine@googlegroups.com > . > > > To unsubscribe from this group, send email to > > > google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com><google-appengine%2Bunsubscrib > e...@googlegroups.com> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/google-appengine?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appeng...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.