Announcement Announcement Module
Collapse
No announcement yet.
Spring Social Google SignIn Problem Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring Social Google SignIn Problem

    When attempting to signin I receive the following error from Google:

    OAuth 2.0 error: redirect_uri_mismatch

    The redirect URI in the request: http: //localhost:8080/signin/google;jsessionid=1pcqvelta3gbk did not match a registered redirect URI

    However http://localhost:8080/signin/google is listed as one of the Redirect URIs for the application, so it appears the jsession parameter
    is throwing things off.

    The format of the full URL is of the form:

    https: //accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo%23email&response_type=code&redirect_uri=h ttp://localhost:8080/signin/google;jsessionid%3D1pcqvelta3gbk&providerId=googl e&client_id=666666666666.apps.googleusercontent.co m&hl=en-US&from_login=1&as=333333333333333

    And interestingly when I remove the jsession suffix from the URL and resubmit the authentication does go through and I get redirected back to localhost. (Although I do have to reauthorize the app as being allowed even though I have previously granted its permission)

    I'm wondering if anyone else has come across this problem. My environment for this is the Google App Engine local server, but signin to Facebook does work in this environment. Other configuration settings that may be relevant are that I am also using Spring Security, but have the /signin/** and /signup/** paths set to “permitAll”. Additionally I am not using the Apache HttpClient (not on classpath) which I believe means that connectivity is handled by org.springframework.http.client.SimpleClientHttpRe questFactory.

    I would appreciate any suggestions on how to get this working or to further diagnose the problem.

    Thank you,
    David

  • #2
    I had this problem and the reason was that the redirect API I used in my app didn't match the redirect API I specified in my Google API console

    Comment


    • #3
      Thank you for the response. Could you please elaborate further? I believe these values agree in my project.

      In my jsp I have:

      <form name="ggl_signin" action="<c:url value="/signin/google"/>" method="POST">
      <input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo#email" />
      <button type="submit">Sign in with Google</button>
      </form>

      which generates the redirect URL I listed originally http://localhost:8080/signin/google;...=1pcqvelta3gbk

      In my Google APIs Console, one of the Redirect URIs is:

      http://localhost:8080/signin/google

      Comment


      • #4
        try to search for my name on this forum. I don't exactly remember how I solved it but I did post that. If the urls are in fact the same, one thing that might be a problem is the fact that you use localhost. Try specifying a hosts file "real-fake" url, e.g. http://www.mydomain.com:8080, that points to your localhost and use that. Perhaps Google requires a "real" url.

        Comment


        • #5
          As best I can tell from your earlier thread the problem you referenced was around using "/connect/google" rather than "/signin/google". I can reproduce the problem on my production server, so the problem is not related to using localhost.

          Is anyone using this with HttpSessions where the jsession is being appended to the URL? I believe this is the cause, so it would be helpful to know what others are experiencing.

          Perhaps the Spring Social Google implementation should be ignoring request parameters when building URLs to communicate with Google?

          Comment

          Working...
          X