-
Notifications
You must be signed in to change notification settings - Fork 277
Expand file tree
/
Copy pathLocalHttpRequestEnvironment.java
More file actions
65 lines (56 loc) · 2.57 KB
/
Copy pathLocalHttpRequestEnvironment.java
File metadata and controls
65 lines (56 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.google.appengine.tools.development;
import com.google.appengine.api.NamespaceManager;
import com.google.appengine.api.users.dev.LoginCookieUtils;
import java.util.concurrent.ConcurrentMap;
import javax.servlet.http.HttpServletRequest;
public class LocalHttpRequestEnvironment extends LocalEnvironment
{
static final String DEFAULT_NAMESPACE_HEADER = "X-AppEngine-Default-Namespace";
static final String CURRENT_NAMESPACE_HEADER = "X-AppEngine-Current-Namespace";
private static final String CURRENT_NAMESPACE_KEY = NamespaceManager.class.getName() + ".currentNamespace";
private static final String APPS_NAMESPACE_KEY = NamespaceManager.class.getName() + ".appsNamespace";
private static final String USER_ID_KEY = "com.google.appengine.api.users.UserService.user_id_key";
private static final String USER_ORGANIZATION_KEY = "com.google.appengine.api.users.UserService.user_organization";
private static final String X_APPENGINE_QUEUE_NAME = "X-AppEngine-QueueName";
/*
* AppScale -- repladed CookieData with AppScaleCookieData (see LocalCookieUtils)
*/
private final LoginCookieUtils.AppScaleCookieData loginCookieData;
private static final String COOKIE_NAME = "dev_appserver_login";
public LocalHttpRequestEnvironment(String appId, String majorVersionId, HttpServletRequest request, Long deadlineMillis)
{
super(appId, majorVersionId, deadlineMillis);
this.loginCookieData = LoginCookieUtils.getCookieData(request);
String requestNamespace = request.getHeader("X-AppEngine-Default-Namespace");
if (requestNamespace != null) {
this.attributes.put(APPS_NAMESPACE_KEY, requestNamespace);
}
String currentNamespace = request.getHeader("X-AppEngine-Current-Namespace");
if (currentNamespace != null) {
this.attributes.put(CURRENT_NAMESPACE_KEY, currentNamespace);
}
if (this.loginCookieData != null) {
this.attributes.put("com.google.appengine.api.users.UserService.user_id_key", this.loginCookieData.getUserId());
this.attributes.put("com.google.appengine.api.users.UserService.user_organization", "");
}
if (request.getHeader("X-AppEngine-QueueName") != null)
this.attributes.put("com.google.appengine.request.offline", Boolean.TRUE);
}
public boolean isLoggedIn()
{
return this.loginCookieData != null;
}
public String getEmail() {
if (this.loginCookieData == null) {
return null;
}
return this.loginCookieData.getEmail();
}
public boolean isAdmin()
{
if (this.loginCookieData == null) {
return false;
}
return this.loginCookieData.isAdmin();
}
}