title: Google Cloud Endpoints + Firebase Auth: method_info is not set
body: <p>So I am running the sample code provided by Google:</p>
  
  <pre><code>package com.neat.backend;
  /**
   * An endpoint class we are exposing
   */
  @Api(
          name = "myApi",
          version = "v1",
          namespace = @ApiNamespace(
                  ownerDomain = "backend.neat.com",
                  ownerName = "backend.neat.com",
                  packagePath = ""
          ),
          issuers = {
          @ApiIssuer(
                  name = "firebase",
                  issuer = "https://securetoken.google.com/" + PROJECT_ID,
                  jwksUri = "https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com")
  })
  public class MyEndpoint {
  
      @ApiMethod(
              path = "firebase_user",
              httpMethod = ApiMethod.HttpMethod.GET,
              authenticators = {EspAuthenticator.class},
              issuerAudiences = {@ApiIssuerAudience(name = "firebase", audiences = {PROJECT_ID})}
      )
      public Email getUserEmailFirebase(User user) throws UnauthorizedException {
          if (user == null) {
              throw new UnauthorizedException("Invalid credentials");
          }
  
          Email response = new Email(user.getEmail());
          return response;
      }
  
  }
  </code></pre>
  
  <p>I am getting a Firebase token from my Android client and try to send it to the backend by:</p>
  
  <pre><code>curl -H "Authorization: Bearer FIREBASE_JWT_TOKEN" \
       -X GET \
       http://localhost:8080/_ah/api/echo/v1/firebase_user
  </code></pre>
  
  <p>The error I see in the logs is the following:</p>
  
  <pre><code>[INFO] java.lang.IllegalStateException: method_info is not set in the request
  [INFO]  at com.google.api.server.spi.auth.EspAuthenticator.authenticate(EspAuthenticator.java:67)
  [INFO]  at com.google.api.server.spi.request.Auth.authenticate(Auth.java:100)
  [INFO]  at com.google.api.server.spi.request.ServletRequestParamReader.getUser(ServletRequestParamReader.java:191)
  [INFO]  at com.google.api.server.spi.request.ServletRequestParamReader.deserializeParams(ServletRequestParamReader.java:136)
  [INFO]  at com.google.api.server.spi.request.RestServletRequestParamReader.read(RestServletRequestParamReader.java:123)
  [INFO]  at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:350)
  [INFO]  at com.google.api.server.spi.handlers.EndpointsMethodHandler$RestHandler.handle(EndpointsMethodHandler.java:114)
  [INFO]  at com.google.api.server.spi.handlers.EndpointsMethodHandler$RestHandler.handle(EndpointsMethodHandler.java:102)
  [INFO]  at com.google.api.server.spi.dispatcher.PathDispatcher.dispatch(PathDispatcher.java:49)
  [INFO]  at com.google.api.server.spi.EndpointsServlet.service(EndpointsServlet.java:71)
  [INFO]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  </code></pre>
  
  <p>I have tried deploying the exact same code to App Engine and it works perfectly. I have tried debugging EspAuthenticator and it seems that it is expecting the Servlet filters to inject some attributes in the request. </p>