/*
* Copyright 2015 Red Hat, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.auth.oauth2;
import io.vertx.codegen.annotations.CacheReturn;
import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.auth.User;
import io.vertx.ext.auth.oauth2.impl.OAuth2TokenImpl;
import io.vertx.ext.auth.oauth2.impl.OAuth2UserImpl;
AccessToken extension to the User interface
Author: Paulo Lopes
/**
* AccessToken extension to the User interface
*
* @author Paulo Lopes
*/
@VertxGen
public interface AccessToken extends User {
Check if the access token is expired or not.
/**
* Check if the access token is expired or not.
*/
boolean expired();
The Access Token if present parsed as a JsonObject
Returns: JSON
/**
* The Access Token if present parsed as a JsonObject
* @return JSON
*/
@CacheReturn
JsonObject accessToken();
The Refresh Token if present parsed as a JsonObject
Returns: JSON Deprecated: refresh tokens are specific to the provider and should not be
handled by the consumer. Tokens are still available as an
opaque string.
/**
* The Refresh Token if present parsed as a JsonObject
* @return JSON
*
* @deprecated refresh tokens are specific to the provider and should not be
* handled by the consumer. Tokens are still available as an
* opaque string.
*/
@Deprecated
@CacheReturn
JsonObject refreshToken();
The Id Token if present parsed as a JsonObject
Returns: JSON
/**
* The Id Token if present parsed as a JsonObject
* @return JSON
*/
@CacheReturn
JsonObject idToken();
The RAW String if available for the Access Token
Returns: String
/**
* The RAW String if available for the Access Token
* @return String
*/
String opaqueAccessToken();
The RAW String if available for the Refresh Token
Returns: String
/**
* The RAW String if available for the Refresh Token
* @return String
*/
String opaqueRefreshToken();
The RAW String if available for the Id Token
Returns: String
/**
* The RAW String if available for the Id Token
* @return String
*/
String opaqueIdToken();
String tokenType();
@Fluent
AccessToken setTrustJWT(boolean trust);
Refresh the access token
Params: - callback – - The callback function returning the results.
/**
* Refresh the access token
*
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken refresh(Handler<AsyncResult<Void>> callback);
Revoke access or refresh token
Params: - token_type – - A String containing the type of token to revoke. Should be either "access_token" or "refresh_token".
- callback – - The callback function returning the results.
/**
* Revoke access or refresh token
*
* @param token_type - A String containing the type of token to revoke. Should be either "access_token" or "refresh_token".
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken revoke(String token_type, Handler<AsyncResult<Void>> callback);
Revoke refresh token and calls the logout endpoint. This is a openid-connect extension and might not be
available on all providers.
Params: - callback – - The callback function returning the results.
/**
* Revoke refresh token and calls the logout endpoint. This is a openid-connect extension and might not be
* available on all providers.
*
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken logout(Handler<AsyncResult<Void>> callback);
Introspect access token. This is an OAuth2 extension that allow to verify if an access token is still valid.
Params: - callback – - The callback function returning the results.
/**
* Introspect access token. This is an OAuth2 extension that allow to verify if an access token is still valid.
*
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken introspect(Handler<AsyncResult<Void>> callback);
Introspect access token. This is an OAuth2 extension that allow to verify if an access token is still valid.
Params: - tokenType – - A String containing the type of token to revoke. Should be either "access_token" or "refresh_token".
- callback – - The callback function returning the results.
/**
* Introspect access token. This is an OAuth2 extension that allow to verify if an access token is still valid.
*
* @param tokenType - A String containing the type of token to revoke. Should be either "access_token" or "refresh_token".
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken introspect(String tokenType, Handler<AsyncResult<Void>> callback);
Load the user info as per OIDC spec.
Params: - callback – - The callback function returning the results.
/**
* Load the user info as per OIDC spec.
*
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken userInfo(Handler<AsyncResult<JsonObject>> callback);
Fetches a JSON resource using this Access Token.
Params: - resource – - the resource to fetch.
- callback – - The callback function returning the results.
/**
* Fetches a JSON resource using this Access Token.
*
* @param resource - the resource to fetch.
* @param callback - The callback function returning the results.
*/
@Fluent
default AccessToken fetch(String resource, Handler<AsyncResult<OAuth2Response>> callback) {
return fetch(HttpMethod.GET, resource, null, null, callback);
}
Fetches a JSON resource using this Access Token.
Params: - method – - the HTTP method to user.
- resource – - the resource to fetch.
- headers – - extra headers to pass to the request.
- payload – - payload to send to the server.
- callback – - The callback function returning the results.
/**
* Fetches a JSON resource using this Access Token.
*
* @param method - the HTTP method to user.
* @param resource - the resource to fetch.
* @param headers - extra headers to pass to the request.
* @param payload - payload to send to the server.
* @param callback - The callback function returning the results.
*/
@Fluent
AccessToken fetch(HttpMethod method, String resource, JsonObject headers, Buffer payload, Handler<AsyncResult<OAuth2Response>> callback);
}