anchor.diff:          String tokenResponse = webResponseToString(doHTTPRequest(uri, "GET"));
           return extractToken(tokenResponse, "token");
       }
  -
       private String addTokenToUri(String uri, String token) {
           if (token != null && !token.isEmpty())
               uri += uri.contains("?") ? "&token=" + token : "?token=" + token;
           return uri;
       }
  -
       private String extractToken(String tokenResponse, String key) {
           String token = getJsonValue(tokenResponse, key);
           if (token == null || token.isEmpty()) {
  
positive.code:         public String getHostRedirect() {
              return hostRedirect;
          }
  
          public void setHostRedirect(String hostRedirect) {
              this.hostRedirect = hostRedirect;
          }
  
          public String getOAuth2Endpoint(){
              return this.oauth2Endpoint;
          }
          public void setOAuth2Endpoint(String value){
              this.oauth2Endpoint = value;
          }
  
          public String getUsername(){
              return this.username;
          }
          public void setUsername(String value){
              this.username = value;
          }
  
          public String getPassword(){
              return this.password;
          }
          public void setPassword(String value){
              this.password = value;
          }
  
          public String getClientId(){
              return this.clientId;
          }
          public void setClientId(String value){
              this.clientId = value;
          }
  
          public String getClientSecret(){
              return this.clientSecret;
          }
          public void setClientSecret(String value){
              this.clientSecret = value;
          }
  
          public int getRateLimit(){
              return (this.rateLimit == null || this.rateLimit.isEmpty() ) ? -1 : Integer.parseInt(this.rateLimit);
          }
          public void setRateLimit(int value){
              this.rateLimit = String.valueOf(value);
          }
  
          public int getRateLimitPeriod(){
              return (this.rateLimitPeriod == null || this.rateLimitPeriod.isEmpty() ) ? -1 : Integer.parseInt(this.rateLimitPeriod);
          }
          public void setRateLimitPeriod(int value){
              this.rateLimitPeriod = String.valueOf(value);
          }
  
          public String getTokenServiceUri(){
              if (this.tokenServiceUri == null && tokenServiceMap != null){
                  this.tokenServiceUri = tokenServiceMap.get(this.url);
              }
              return this.tokenServiceUri;
          }
  
          public void setTokenServiceUri(String value){
  
              this.tokenServiceUri = value;
  
              tokenServiceMap.put(this.url, value);
          }
      }
  
      private static Object _rateMapLock = new Object();
  
      private static void sendErrorResponse(HttpServletResponse response, String errorDetails, String errorMessage, int errorCode) throws IOException{
          response.setHeader("Content-Type", "application/json");
          String message = "{" +
  
negative.code:                                     String rateLimitPeriod = ProxyConfig.getAttributeWithRegex("rateLimitPeriod", server);
                                      String tokenServiceUri = ProxyConfig.getAttributeWithRegex("tokenServiceUri", server);
                                      String hostRedirect = ProxyConfig.getAttributeWithRegex("hostRedirect", server);
                                      serverList.add(new ServerUrl(url, matchAll, oauth2Endpoint, username, password, clientId, clientSecret, rateLimit, rateLimitPeriod, tokenServiceUri, hostRedirect));
                                  }
                                  config.setServerUrls(serverList.toArray(new ServerUrl[serverList.size()]));
                              }
                          }
                      }
                  }
              }
              return config;
          }
          private static String getAttributeWithRegex(String property, String tag){
              Pattern p = Pattern.compile(property + "=\\s*\"\\s*(.+?)\\s*\"");
              Matcher m = p.matcher(tag);
  