/*
* oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.
*
* Copyright (c) 2014, Gluu
*/
package org.xdi.oxauth.model.common;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.xdi.oxauth.model.authorize.JwtAuthorizationRequest;
import org.xdi.oxauth.model.exception.InvalidClaimException;
import org.xdi.oxauth.model.exception.InvalidJweException;
import org.xdi.oxauth.model.exception.InvalidJwtException;
import org.xdi.oxauth.model.ldap.TokenLdap;
import org.xdi.oxauth.model.registration.Client;
import org.xdi.util.security.StringEncrypter;
/**
* @author Yuriy Zabrovarnyy
* @author Javier Rojas Blum
* @version October 7, 2016
*/
public interface IAuthorizationGrant {
public String getGrantId();
public void setGrantId(String p_grantId);
public AuthorizationCode getAuthorizationCode();
public void setAuthorizationCode(AuthorizationCode authorizationCode);
public String getNonce();
public void setNonce(String nonce);
public AccessToken createAccessToken();
public AccessToken createLongLivedAccessToken();
public RefreshToken createRefreshToken();
public IdToken createIdToken(String nonce, AuthorizationCode authorizationCode, AccessToken accessToken,
AuthorizationGrant authorizationGrant, boolean includeIdTokenClaims)
throws SignatureException, StringEncrypter.EncryptionException, InvalidJwtException, InvalidJweException,
InvalidClaimException, InvalidKeyException, NoSuchAlgorithmException;
public RefreshToken getRefreshToken(String refreshTokenCode);
public AbstractToken getAccessToken(String tokenCode);
public boolean isValid();
public void revokeAllTokens();
public void checkExpiredTokens();
public String checkScopesPolicy(String scope);
public User getUser();
public String getUserId();
public String getUserDn();
public AuthorizationGrantType getAuthorizationGrantType();
public String getClientId();
public Client getClient();
public String getClientDn();
public List<AccessToken> getAccessTokens();
public Set<String> getScopes();
public Set<String> getRefreshTokensCodes();
public Set<String> getAccessTokensCodes();
public List<RefreshToken> getRefreshTokens();
public void setRefreshTokens(List<RefreshToken> refreshTokens);
public AccessToken getLongLivedAccessToken();
public IdToken getIdToken();
public JwtAuthorizationRequest getJwtAuthorizationRequest();
public void setJwtAuthorizationRequest(JwtAuthorizationRequest p_jwtAuthorizationRequest);
public Date getAuthenticationTime();
public TokenLdap getTokenLdap();
public void setTokenLdap(TokenLdap p_tokenLdap);
public void setLongLivedAccessToken(AccessToken longLivedAccessToken);
public void setIdToken(IdToken idToken);
public void setScopes(Collection<String> scopes);
public void setAccessTokens(List<AccessToken> accessTokens);
public String getAcrValues();
public void setAcrValues(String authMode);
public String getSessionDn();
public void setSessionDn(String sessionDn);
/**
* Saves changes asynchronously
*/
public void save();
}