package com.github.hburgmeier.jerseyoauth2.authsrv.impl.protocol.response.accesstoken; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.github.hburgmeier.jerseyoauth2.authsrv.api.token.IAccessTokenInfo; import com.github.hburgmeier.jerseyoauth2.authsrv.impl.protocol.response.AbstractOAuth2Response; import com.github.hburgmeier.jerseyoauth2.authsrv.impl.protocol.response.ResponseFormat; import com.github.hburgmeier.jerseyoauth2.protocol.impl.ScopeParser; import com.github.hburgmeier.jerseyoauth2.protocol.impl.oauth2.Constants; public abstract class AbstractAccessTokenResponse extends AbstractOAuth2Response { protected final ScopeParser scopeParser = new ScopeParser(); protected Map<String, Object> tokenInfo = new HashMap<>(); public AbstractAccessTokenResponse(int statusCode, ResponseFormat responseFormat, IAccessTokenInfo accessToken, String state) { super(statusCode, responseFormat); tokenInfo.put(Constants.ACCESS_TOKEN, accessToken.getAccessToken()); if (accessToken.getExpiresIn()!=null) { tokenInfo.put(Constants.EXPIRES_IN, accessToken.getExpiresIn()); } if (StringUtils.isNotEmpty(accessToken.getRefreshToken())) { tokenInfo.put(Constants.REFRESH_TOKEN, accessToken.getRefreshToken()); } if (accessToken.getTokenType()!=null) { tokenInfo.put(Constants.TOKEN_TYPE, accessToken.getTokenType().getTechnicalCode()); } if (accessToken.getAuthorizedScopes()!=null && accessToken.getAuthorizedScopes().isEmpty()) { tokenInfo.put(Constants.SCOPE, scopeParser.render(accessToken.getAuthorizedScopes())); } if (StringUtils.isNotEmpty(state)) { tokenInfo.put(Constants.STATE, state); } } }