@Consumes("application/x-www-form-urlencoded")
@Produces("application/x-www-form-urlencoded")
@TokenResource
public Response postReqTokenRequest() {
OAuthServerRequest request = new OAuthServerRequest(requestContext);
OAuth1Parameters params = new OAuth1Parameters();
params.readRequest(request);
String tok = params.getToken();
if ((tok != null) && (!tok.contentEquals(""))) {
throw new OAuth1Exception(Response.Status.BAD_REQUEST, null);
}
String consKey = params.getConsumerKey();
if (consKey == null) {
throw new OAuth1Exception(Response.Status.BAD_REQUEST, null);
}
OAuth1Consumer consumer = provider.getConsumer(consKey);
if (consumer == null) {
throw new OAuth1Exception(Response.Status.BAD_REQUEST, null);
}
OAuth1Secrets secrets = new OAuth1Secrets().consumerSecret(consumer.getSecret()).tokenSecret("");
boolean sigIsOk = false;
try {
sigIsOk = oAuth1Signature.verify(request, params, secrets);
} catch (OAuth1SignatureException ex) {
Logger.getLogger(RequestTokenResource.class.getName()).log(Level.SEVERE, null, ex);
}
if (!sigIsOk) {
throw new OAuth1Exception(Response.Status.BAD_REQUEST, null);
}
MultivaluedMap<String, String> parameters = new MultivaluedHashMap<String, String>();
for (String n : request.getParameterNames()) {
parameters.put(n, request.getParameterValues(n));
}
OAuth1Token rt = provider.newRequestToken(consKey, params.getCallback(), parameters);
Form resp = new Form();
resp.param(OAuth1Parameters.TOKEN, rt.getToken());
resp.param(OAuth1Parameters.TOKEN_SECRET, rt.getSecret());
resp.param(OAuth1Parameters.CALLBACK_CONFIRMED, "true");