package com.github.hburgmeier.jerseyoauth2.client.scribe;
import java.io.IOException;
import java.util.Map;
import org.scribe.extractors.AccessTokenExtractor;
import org.scribe.model.Token;
import com.fasterxml.jackson.databind.ObjectMapper;
public class OAuth20TokenExtractorImpl implements AccessTokenExtractor {
@SuppressWarnings("rawtypes")
@Override
public Token extract(String response) {
ObjectMapper mapper = new ObjectMapper();
try {
Map tokenMap = mapper.readValue(response, Map.class);
if (!tokenMap.containsKey("access_token")) {
throw new TokenExtractorException(response);
}
String accessToken = (String)tokenMap.get("access_token");
String refreshToken = (String)tokenMap.get("refresh_token");
String expiration = null;
if (tokenMap.containsKey("expires_in"))
{
expiration = ((Integer)tokenMap.get("expires_in")).toString();
}
return new OAuth2Token(accessToken, refreshToken, expiration, response);
} catch (IOException e) {
throw new TokenExtractorException(response, e);
}
}
}