001/*******************************************************************************
002 * Copyright 2014 The MITRE Corporation
003 *   and the MIT Kerberos and Internet Trust Consortium
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *   http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 ******************************************************************************/
017package org.mitre.oauth2.service;
018
019import org.mitre.oauth2.model.OAuth2AccessTokenEntity;
020import org.mitre.oauth2.model.OAuth2RefreshTokenEntity;
021import org.mitre.openid.connect.model.UserInfo;
022
023import java.util.Map;
024
025/**
026 * Strategy interface for assembling a token introspection result.
027 */
028public interface IntrospectionResultAssembler {
029
030    /**
031     * Assemble a token introspection result from the given access token and user info.
032     *
033     * @param accessToken the access token
034     * @param userInfo the user info
035     * @return the token introspection result
036     */
037    Map<String, Object> assembleFrom(OAuth2AccessTokenEntity accessToken, UserInfo userInfo);
038
039    /**
040     * Assemble a token introspection result from the given refresh token and user info.
041     *
042     * @param refreshToken the refresh token
043     * @param userInfo the user info
044     * @return the token introspection result
045     */
046    Map<String, Object> assembleFrom(OAuth2RefreshTokenEntity refreshToken, UserInfo userInfo);
047
048}