private Result handleOAuthProblemException(HttpServletResponse response, OAuthMessage message, String tokenStr, OAuthProblemException ope) { logOAuthProblem(message, ope, LOG); try { OAuthServlet.handleException(response, ope, applicationProperties.getBaseUrl()); } catch (Exception e) { // there was an IOE or ServletException, nothing more we can really do LOG.error("Failure reporting OAuth error to client", e); } if (ope.getProblem().equals(CONSUMER_KEY_UNKNOWN)) { return new Result.Failure(new OAuthProblem(Problem.valueOf(ope.getProblem().toUpperCase(Locale.ENGLISH)))); } if (tokenStr != null) { return new Result.Failure(new OAuthProblem(Problem.valueOf(ope.getProblem().toUpperCase(Locale.ENGLISH)), tokenStr)); } else { return new Result.Failure(new OAuthProblem(Problem.valueOf(ope.getProblem().toUpperCase(Locale.ENGLISH)))); } }
validator.validateMessage(message, new OAuthAccessor(converter.toOAuthConsumer(consumer))); } catch (OAuthProblemException ope) { logOAuthProblem(message, ope, log); throw ope;
private void process(AuthorizationRequestProcessor processor, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ServiceProviderToken token; try { token = loader.getTokenForAuthorization(request); } catch (OAuthException e) { if (e instanceof OAuthProblemException) { OAuthProblemUtils.logOAuthProblem(OAuthServlet.getMessage(request, null), (OAuthProblemException) e, log); } handleException(response, e, applicationProperties.getBaseUrl(), false); // setting content type directly to "text/html;charset=UTF-8" does not seem to work, // probably due to the response.reset() call in handleException() above renderError(response, getMessage(e)); return; } if (!loginRedirector.isLoggedIn(request)) { loginRedirector.redirectToLogin(request, response); } else { processor.process(request, response, token); } }
validator.validateMessage(requestMessage, converter.toOAuthAccessor(token)); } catch (OAuthProblemException ope) { logOAuthProblem(requestMessage, ope, log); throw ope;