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);
}
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);
}
}
Aggregations