View Javadoc

1   /**
2    *       Copyright 2010 Newcastle University
3    *
4    *          http://research.ncl.ac.uk/smart/
5    *
6    * Licensed to the Apache Software Foundation (ASF) under one or more
7    * contributor license agreements.  See the NOTICE file distributed with
8    * this work for additional information regarding copyright ownership.
9    * The ASF licenses this file to You under the Apache License, Version 2.0
10   * (the "License"); you may not use this file except in compliance with
11   * the License.  You may obtain a copy of the License at
12   *
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   */
21  
22  package org.apache.amber.oauth2.client.response;
23  
24  import org.apache.amber.oauth2.common.OAuth;
25  import org.apache.amber.oauth2.common.error.OAuthError;
26  import org.apache.amber.oauth2.common.exception.OAuthProblemException;
27  import org.apache.amber.oauth2.common.token.BasicOAuthToken;
28  import org.apache.amber.oauth2.common.token.OAuthToken;
29  import org.apache.amber.oauth2.common.utils.JSONUtils;
30  import org.codehaus.jettison.json.JSONException;
31  
32  /**
33   *
34   *
35   *
36   */
37  public class OAuthJSONAccessTokenResponse extends OAuthAccessTokenResponse {
38  
39      public OAuthJSONAccessTokenResponse() {
40      }
41  
42      @Override
43      public String getAccessToken() {
44          return getParam(OAuth.OAUTH_ACCESS_TOKEN);
45      }
46  
47      @Override
48      public Long getExpiresIn() {
49          String value = getParam(OAuth.OAUTH_EXPIRES_IN);
50          return value == null? null: Long.valueOf(value);
51      }
52  
53      public String getScope() {
54          return getParam(OAuth.OAUTH_SCOPE);
55      }
56  
57      public OAuthToken getOAuthToken() {
58          return new BasicOAuthToken(getAccessToken(), getExpiresIn(), getRefreshToken(), getScope());
59      }
60  
61      public String getRefreshToken() {
62          return getParam(OAuth.OAUTH_REFRESH_TOKEN);
63      }
64  
65      protected void setBody(String body) throws OAuthProblemException {
66  
67          try {
68              this.body = body;
69              parameters = JSONUtils.parseJSON(body);
70          } catch (JSONException e) {
71              throw OAuthProblemException.error(OAuthError.CodeResponse.UNSUPPORTED_RESPONSE_TYPE,
72                  "Invalid response! Response body is not " + OAuth.ContentType.JSON + " encoded");
73          }
74      }
75  
76      protected void setContentType(String contentType) {
77          this.contentType = contentType;
78      }
79  
80  
81      protected void setResponseCode(int code) {
82          this.responseCode = code;
83      }
84  
85  }