View Javadoc
1   /*
2    * Copyright 2006-2011 the original author or authors.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
5    * the License. You may obtain a copy of the License at
6    *
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10   * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
11   * specific language governing permissions and limitations under the License.
12   */
13  package org.springframework.security.oauth2.common;
14  
15  import java.util.Date;
16  import java.util.Map;
17  import java.util.Set;
18  
19  /**
20   * @author Dave Syer
21   *
22   */
23  @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = OAuth2AccessTokenJackson2Serializer.class)
24  @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = OAuth2AccessTokenJackson2Deserializer.class)
25  public interface OAuth2AccessToken {
26  
27  	public static String BEARER_TYPE = "Bearer";
28  
29  	public static String OAUTH2_TYPE = "OAuth2";
30  
31  	/**
32  	 * The access token issued by the authorization server. This value is REQUIRED.
33  	 */
34  	public static String ACCESS_TOKEN = "access_token";
35  
36  	/**
37  	 * The type of the token issued as described in <a
38  	 * href="https://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-7.1">Section 7.1</a>. Value is case insensitive.
39  	 * This value is REQUIRED.
40  	 */
41  	public static String TOKEN_TYPE = "token_type";
42  
43  	/**
44  	 * The lifetime in seconds of the access token. For example, the value "3600" denotes that the access token will
45  	 * expire in one hour from the time the response was generated. This value is OPTIONAL.
46  	 */
47  	public static String EXPIRES_IN = "expires_in";
48  
49  	/**
50  	 * The refresh token which can be used to obtain new access tokens using the same authorization grant as described
51  	 * in <a href="https://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-6">Section 6</a>. This value is OPTIONAL.
52  	 */
53  	public static String REFRESH_TOKEN = "refresh_token";
54  
55  	/**
56  	 * The scope of the access token as described by <a
57  	 * href="https://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.3">Section 3.3</a>
58  	 */
59  	public static String SCOPE = "scope";
60  
61  	/**
62  	 * The additionalInformation map is used by the token serializers to export any fields used by extensions of OAuth.
63  	 * @return a map from the field name in the serialized token to the value to be exported. The default serializers 
64  	 * make use of Jackson's automatic JSON mapping for Java objects (for the Token Endpoint flows) or implicitly call 
65  	 * .toString() on the "value" object (for the implicit flow) as part of the serialization process.
66  	 */
67  	Map<String, Object> getAdditionalInformation();
68  
69  	Set<String> getScope();
70  
71  	OAuth2RefreshToken getRefreshToken();
72  
73  	String getTokenType();
74  
75  	boolean isExpired();
76  
77  	Date getExpiration();
78  
79  	int getExpiresIn();
80  
81  	String getValue();
82  
83  }