/*
* 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.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.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;
/**
* Gives ability to use authorization grant in read-only mode.
*
* @author Yuriy Zabrovarnyy
* @author Javier Rojas Blum
* @version October 7, 2016
*/
public class UnmodifiableAuthorizationGrant implements IAuthorizationGrant {
private final IAuthorizationGrant grant;
public UnmodifiableAuthorizationGrant(IAuthorizationGrant grant) {
this.grant = grant;
}
@Override
public String getGrantId() {
return grant.getGrantId();
}
@Override
public void setGrantId(String p_grantId) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public AuthorizationCode getAuthorizationCode() {
return grant.getAuthorizationCode();
}
@Override
public void setAuthorizationCode(AuthorizationCode authorizationCode) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public String getNonce() {
return grant.getNonce();
}
@Override
public void setNonce(String nonce) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public AccessToken createAccessToken() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public AccessToken createLongLivedAccessToken() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public RefreshToken createRefreshToken() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public IdToken createIdToken(String nonce, AuthorizationCode authorizationCode, AccessToken accessToken,
AuthorizationGrant authorizationGrant, boolean includeIdTokenClaims)
throws SignatureException, StringEncrypter.EncryptionException, InvalidJwtException, InvalidJweException {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public RefreshToken getRefreshToken(String refreshTokenCode) {
return grant.getRefreshToken(refreshTokenCode);
}
@Override
public AbstractToken getAccessToken(String tokenCode) {
return grant.getAccessToken(tokenCode);
}
@Override
public boolean isValid() {
return grant.isValid();
}
@Override
public void revokeAllTokens() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void checkExpiredTokens() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public String checkScopesPolicy(String scope) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public User getUser() {
return grant.getUser();
}
@Override
public String getUserId() {
return grant.getUserId();
}
@Override
public String getUserDn() {
return grant.getUserDn();
}
@Override
public AuthorizationGrantType getAuthorizationGrantType() {
return grant.getAuthorizationGrantType();
}
@Override
public String getClientId() {
return grant.getClientId();
}
@Override
public Client getClient() {
return grant.getClient();
}
@Override
public String getClientDn() {
return grant.getClientDn();
}
@Override
public List<AccessToken> getAccessTokens() {
return grant.getAccessTokens();
}
@Override
public Set<String> getScopes() {
return grant.getScopes();
}
@Override
public Set<String> getRefreshTokensCodes() {
return grant.getRefreshTokensCodes();
}
@Override
public Set<String> getAccessTokensCodes() {
return grant.getAccessTokensCodes();
}
@Override
public List<RefreshToken> getRefreshTokens() {
return grant.getRefreshTokens();
}
@Override
public void setRefreshTokens(List<RefreshToken> refreshTokens) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public AccessToken getLongLivedAccessToken() {
return grant.getLongLivedAccessToken();
}
@Override
public IdToken getIdToken() {
return grant.getIdToken();
}
@Override
public JwtAuthorizationRequest getJwtAuthorizationRequest() {
return grant.getJwtAuthorizationRequest();
}
@Override
public void setJwtAuthorizationRequest(JwtAuthorizationRequest p_jwtAuthorizationRequest) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public Date getAuthenticationTime() {
return grant.getAuthenticationTime();
}
@Override
public TokenLdap getTokenLdap() {
return grant.getTokenLdap();
}
@Override
public void setTokenLdap(TokenLdap p_tokenLdap) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void setLongLivedAccessToken(AccessToken longLivedAccessToken) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void setIdToken(IdToken idToken) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void setScopes(Collection<String> scopes) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void setAccessTokens(List<AccessToken> accessTokens) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public String getAcrValues() {
return grant.getAcrValues();
}
@Override
public void setAcrValues(String authMode) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public String getSessionDn() {
return grant.getSessionDn();
}
@Override
public void setSessionDn(String sessionDn) {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
@Override
public void save() {
throw new UnsupportedOperationException("Not allowed for UnmodifiableAuthorizationGrant.");
}
}