Revision created by MOE tool push_codebase.
[gae.git] / java / src / main / com / google / appengine / tools / development / LocalHttpRequestEnvironment.java
blob5ae268bd9ddb634e371e5581648ceaf41870bdbb
1 // Copyright 2009 Google Inc. All Rights Reserved.
3 package com.google.appengine.tools.development;
5 import com.google.appengine.api.NamespaceManager;
6 import com.google.appengine.api.users.dev.LoginCookieUtils;
8 import javax.servlet.http.HttpServletRequest;
10 /**
11 * {@code LocalHttpRequestEnvironment} is a simple {@link LocalEnvironment} that
12 * retrieves authentication details from the cookie that is maintained by the
13 * stub implementation of {@link UserService}.
16 public class LocalHttpRequestEnvironment extends LocalEnvironment {
17 /**
18 * The name of the HTTP header specifying the default namespace
19 * for API calls.
21 static final String DEFAULT_NAMESPACE_HEADER = "X-AppEngine-Default-Namespace";
22 static final String CURRENT_NAMESPACE_HEADER = "X-AppEngine-Current-Namespace";
23 private static final String CURRENT_NAMESPACE_KEY =
24 NamespaceManager.class.getName() + ".currentNamespace";
25 private static final String APPS_NAMESPACE_KEY =
26 NamespaceManager.class.getName() + ".appsNamespace";
28 private static final String USER_ID_KEY =
29 "com.google.appengine.api.users.UserService.user_id_key";
30 private static final String USER_ORGANIZATION_KEY =
31 "com.google.appengine.api.users.UserService.user_organization";
32 private static final String X_APPENGINE_QUEUE_NAME = "X-AppEngine-QueueName";
34 private final LoginCookieUtils.CookieData loginCookieData;
36 public LocalHttpRequestEnvironment(
37 String appId, String majorVersionId, HttpServletRequest request, Long deadlineMillis) {
38 super(appId, majorVersionId, deadlineMillis);
39 this.loginCookieData = LoginCookieUtils.getCookieData(request);
40 String requestNamespace = request.getHeader(DEFAULT_NAMESPACE_HEADER);
41 if (requestNamespace != null) {
42 attributes.put(APPS_NAMESPACE_KEY, requestNamespace);
44 String currentNamespace = request.getHeader(CURRENT_NAMESPACE_HEADER);
45 if (currentNamespace != null) {
46 attributes.put(CURRENT_NAMESPACE_KEY, currentNamespace);
48 if (loginCookieData != null) {
49 attributes.put(USER_ID_KEY, loginCookieData.getUserId());
50 attributes.put(USER_ORGANIZATION_KEY, "");
52 if (request.getHeader(X_APPENGINE_QUEUE_NAME) != null) {
53 attributes.put(ApiProxyLocalImpl.IS_OFFLINE_REQUEST_KEY, Boolean.TRUE);
57 public boolean isLoggedIn() {
58 return loginCookieData != null;
61 public String getEmail() {
62 if (loginCookieData == null) {
63 return null;
64 } else {
65 return loginCookieData.getEmail();
69 public boolean isAdmin() {
70 if (loginCookieData == null) {
71 return false;
72 } else {
73 return loginCookieData.isAdmin();