Search in sources :

Example 1 with TicketState

use of org.apereo.cas.ticket.TicketState in project cas by apereo.

the class OAuth20DefaultTokenGenerator method generate.

@Override
public Pair<AccessToken, RefreshToken> generate(final AccessTokenRequestDataHolder holder) {
    LOGGER.debug("Creating refresh token for [{}]", holder.getService());
    final Authentication authn = DefaultAuthenticationBuilder.newInstance(holder.getAuthentication()).addAttribute(OAuth20Constants.GRANT_TYPE, holder.getGrantType().toString()).build();
    LOGGER.debug("Creating access token for [{}]", holder);
    final AccessToken accessToken = this.accessTokenFactory.create(holder.getService(), authn, holder.getTicketGrantingTicket(), holder.getScopes());
    LOGGER.debug("Created access token [{}]", accessToken);
    addTicketToRegistry(accessToken, holder.getTicketGrantingTicket());
    LOGGER.debug("Added access token [{}] to registry", accessToken);
    if (holder.getToken() instanceof OAuthCode) {
        final TicketState codeState = TicketState.class.cast(holder.getToken());
        codeState.update();
        if (holder.getToken().isExpired()) {
            this.ticketRegistry.deleteTicket(holder.getToken().getId());
        } else {
            this.ticketRegistry.updateTicket(holder.getToken());
        }
        this.ticketRegistry.updateTicket(holder.getTicketGrantingTicket());
    }
    RefreshToken refreshToken = null;
    if (holder.isGenerateRefreshToken()) {
        refreshToken = generateRefreshToken(holder);
        LOGGER.debug("Refresh Token: [{}]", refreshToken);
    } else {
        LOGGER.debug("Service [{}] is not able/allowed to receive refresh tokens", holder.getService());
    }
    return Pair.of(accessToken, refreshToken);
}
Also used : RefreshToken(org.apereo.cas.ticket.refreshtoken.RefreshToken) Authentication(org.apereo.cas.authentication.Authentication) AccessToken(org.apereo.cas.ticket.accesstoken.AccessToken) OAuthCode(org.apereo.cas.ticket.code.OAuthCode) TicketState(org.apereo.cas.ticket.TicketState)

Example 2 with TicketState

use of org.apereo.cas.ticket.TicketState in project cas by apereo.

the class OAuth20UserProfileEndpointController method updateAccessTokenUsage.

private void updateAccessTokenUsage(final AccessToken accessTokenTicket) {
    final TicketState accessTokenState = TicketState.class.cast(accessTokenTicket);
    accessTokenState.update();
    if (accessTokenTicket.isExpired()) {
        this.ticketRegistry.deleteTicket(accessTokenTicket.getId());
    } else {
        this.ticketRegistry.updateTicket(accessTokenTicket);
    }
}
Also used : TicketState(org.apereo.cas.ticket.TicketState)

Aggregations

TicketState (org.apereo.cas.ticket.TicketState)2 Authentication (org.apereo.cas.authentication.Authentication)1 AccessToken (org.apereo.cas.ticket.accesstoken.AccessToken)1 OAuthCode (org.apereo.cas.ticket.code.OAuthCode)1 RefreshToken (org.apereo.cas.ticket.refreshtoken.RefreshToken)1