/
AbstractAppEngineCallbackServlet.java
77 lines (71 loc) · 2.85 KB
/
AbstractAppEngineCallbackServlet.java
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
66
67
68
69
70
71
72
73
74
75
76
77
/*
* Copyright (c) 2011 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.api.client.extensions.appengine.auth;
import com.google.api.client.extensions.appengine.http.UrlFetchTransport;
import com.google.api.client.extensions.servlet.auth.AbstractCallbackServlet;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.util.Beta;
/**
* {@link Beta} <br>
* This servlet fills in some of the required information for the {@link AbstractCallbackServlet}
* with reasonable defaults for App Engine. It will default the servlet to creating {@link
* UrlFetchTransport} objects whenever an {@link HttpTransport} is needed. It will also default the
* user identifier to the logged in App Engine user. This servlet requires that the App Engine user
* must be logged in to work correctly. This can be accomplished by adding a security constraint in
* your web.xml for the path at which this servlet will live.
*
* <p>Example that requires login for all pages:
*
* <pre>
* <code>
* <security-constraint>
* <web-resource-collection>
* <web-resource-name>any</web-resource-name>
* <url-pattern>/*</url-pattern>
* </web-resource-collection>
* <auth-constraint>
* <role-name>*</role-name>
* </auth-constraint>
* </security-constraint>
* </code>
* </pre>
*
* <p>Warning: starting with version 1.7, usage of this for OAuth 2.0 is deprecated. Instead use
* {@link
* com.google.api.client.extensions.appengine.auth.oauth2.AbstractAppEngineAuthorizationCodeCallbackServlet}.
*
* <p>Upgrade warning: in version 1.15 there was an implementation of {@link
* #newJsonFactoryInstance()} that used {@code com.google.api.client.json.jackson.GsonFactory},
* but starting with version 1.16 there is no such implementation.
*
* @author moshenko@google.com (Jacob Moshenko)
* @since 1.4
*/
@Beta
public abstract class AbstractAppEngineCallbackServlet extends AbstractCallbackServlet {
private static final long serialVersionUID = 1L;
/**
* Return the user ID of the user that is logged in.
*
* @throws IllegalStateException Thrown when no user is logged in.
*/
@Override
protected String getUserId() {
return AppEngineServletUtils.getUserId();
}
@Override
protected HttpTransport newHttpTransportInstance() {
return new UrlFetchTransport();
}
}