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);
   }
 }