private void doExchangeToken(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
OAuthMessage message = new HttpRequestMessage(req, req.getRequestURL().toString());
String requestToken = message.getToken();
OAuthAccessor accessor;
try {
accessor = tokenContainer.getRequestTokenAccessor(requestToken);
} catch (OAuthProblemException e) {
LOG.info("Request token unknown", e);
resp.sendError(e.getHttpStatusCode(), e.getMessage());
return;
}
try {
validator.validateMessage(message, accessor);
} catch (OAuthException e) {
LOG.info("The message does not conform to OAuth", e);
resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return;
} catch (URISyntaxException e) {
LOG.info("The message URL is invalid", e);
resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return;
}
OAuthAccessor authorizedAccessor;
try {
authorizedAccessor = tokenContainer.generateAccessToken(accessor.requestToken);
} catch (OAuthProblemException e) {
LOG.info("Request token unknown", e);
resp.sendError(e.getHttpStatusCode(), e.getMessage());