public void validateRequiredParameters(OAuthClientResponse response)
      throws OAuthProblemException {
    Set<String> missingParameters = new HashSet<String>();

    for (Map.Entry<String, String[]> requiredParam : requiredParams.entrySet()) {
      String paramName = requiredParam.getKey();
      String val = response.getParam(paramName);
      if (OAuthUtils.isEmpty(val)) {
        missingParameters.add(paramName);
      } else {
        String[] dependentParams = requiredParam.getValue();
        if (!OAuthUtils.hasEmptyValues(dependentParams)) {
          for (String dependentParam : dependentParams) {
            val = response.getParam(dependentParam);
            if (OAuthUtils.isEmpty(val)) {
              missingParameters.add(dependentParam);
            }
          }
        }
      }
    }

    if (!missingParameters.isEmpty()) {
      throw OAuthUtils.handleMissingParameters(missingParameters);
    }
  }
 public void validateErrorResponse(OAuthClientResponse response) throws OAuthProblemException {
   String error = response.getParam(OAuthError.OAUTH_ERROR);
   if (!OAuthUtils.isEmpty(error)) {
     String errorDesc = response.getParam(OAuthError.OAUTH_ERROR_DESCRIPTION);
     String errorUri = response.getParam(OAuthError.OAUTH_ERROR_URI);
     String state = response.getParam(OAuth.OAUTH_STATE);
     throw OAuthProblemException.error(error).description(errorDesc).uri(errorUri).state(state);
   }
 }
 public void validateNotAllowedParameters(OAuthClientResponse response)
     throws OAuthProblemException {
   List<String> notAllowedParameters = new ArrayList<String>();
   for (String requiredParam : notAllowedParams) {
     String val = response.getParam(requiredParam);
     if (!OAuthUtils.isEmpty(val)) {
       notAllowedParameters.add(requiredParam);
     }
   }
   if (!notAllowedParameters.isEmpty()) {
     throw OAuthUtils.handleNotAllowedParametersOAuthException(notAllowedParameters);
   }
 }
  @Override
  public void validateRequiredParameters(HttpServletRequest request) throws OAuthProblemException {

    String[] tokens = getQueryParameterValues(request, OAuth.OAUTH_BEARER_TOKEN);
    if (OAuthUtils.hasEmptyValues(tokens)) {
      tokens = getQueryParameterValues(request, OAuth.OAUTH_TOKEN);
      if (OAuthUtils.hasEmptyValues(tokens)) {
        throw OAuthProblemException.error(null, "Missing OAuth token.");
      }
    }

    if (tokens != null && tokens.length > 1) {
      throw OAuthProblemException.error(
          OAuthError.TokenResponse.INVALID_REQUEST, "Multiple tokens attached.");
    }

    String oauthVersionDiff =
        ResourceServer.getQueryParameterValue(request, OAuth.OAUTH_VERSION_DIFFER);
    if (!OAuthUtils.isEmpty(oauthVersionDiff)) {
      throw OAuthProblemException.error(
          OAuthError.TokenResponse.INVALID_REQUEST, "Incorrect OAuth version. Found OAuth V1.0.");
    }
  }