{
state = URLDecoder.decode(state, "UTF-8");
}
catch (UnsupportedEncodingException e)
{
throw new MessagingException(
MessageFactory.createStaticMessage("State query param had invalid encoding: " + state), event);
}
String eventId = StringUtils.match(EVENT_ID_PATTERN, state, 1);
if (StringUtils.isBlank(eventId))
{
if (logger.isWarnEnabled())
{
logger.warn(String.format(
"Could not fetch original event id for callback with state %s. Will continue with new event without restoring previous one",
state));
}
return event;
}
if (logger.isDebugEnabled())
{
logger.debug(String.format("received callback for event id %s. Fetching original event", eventId));
}
MuleEvent restoredEvent = null;
try
{
restoredEvent = this.oauthManager.restoreAuthorizationEvent(eventId);
}
catch (ObjectDoesNotExistException e)
{
throw new MessagingException(MessageFactory.createStaticMessage(String.format(
"Could not find authorization event %s in object store", eventId)), event, e);
}
catch (ObjectStoreException e)
{
throw new MessagingException(MessageFactory.createStaticMessage(String.format(
"Error retrieving authorization event %s from object store", eventId)), event, e);
}
MuleMessage restoredMessage = restoredEvent.getMessage();
String cleanedState = StringUtils.match(ORIGINAL_STATE_PATTERN, state, 1);