title: Empty secret returned in Google Gmail OAuth
body: <p>I am trying to read Gmail in-box using IMAP with OAuth.
  When using basic main method, everything works fine:</p>
  
  <pre><code>private static final String SCOPE = "https://mail.google.com/";
  
  private static final String CONSUMER_KEY = "www.******.com";
  private static final String CONSUMER_SECRET = "******";
  private static final String USER_EMAIL = "******";
  
  public static void main(String[] args) throws Exception {
  
      GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
      oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
  
      oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
      OAuthSigner signer = new OAuthHmacSha1Signer();
  
      GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
  
      oauthParameters.setScope(SCOPE);
  
      oauthHelper.getUnauthorizedRequestToken(oauthParameters);
  
      String requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters);
      System.out.println(requestUrl);
      System.out.println("Please visit the URL above to authorize your OAuth "
              + "request token.  Once that is complete, press any key to "
              + "continue...");
      System.in.read();
  
      String token = oauthHelper.getAccessToken(oauthParameters);
      System.out.println("OAuth Access Token: " + token);
      System.out.println();
  
      //IMAP
      XoauthAuthenticator.initialize();
  
      IMAPSSLStore imapSslStore = XoauthAuthenticator.connectToImap("imap.googlemail.com",
              993,
              USER_EMAIL,
              oauthParameters.getOAuthToken(),
              oauthParameters.getOAuthTokenSecret(),
              new OAuthConsumer(null, CONSUMER_KEY, CONSUMER_SECRET, null),
              true);
      System.out.println("Successfully authenticated to IMAP.\n");
  }
  </code></pre>
  
  <p>but, when I move towards 3 leg OAuth, I am getting back empty access token secret, this is controller code:</p>
  
  <pre><code>private static final String CALLBACK = "http://www.*******.com/oauthback.htm";
  
  private static final String SCOPE = "https://mail.google.com/";
  private static final String CONSUMER_KEY = "www.******.com";
  private static final String CONSUMER_SECRET = "******";
  private static final String USER_EMAIL = "******";
  
  @RequestMapping("/oauth.htm")
  public void oauth(HttpServletResponse response, HttpSession session) throws OAuthException, IOException,
          Base64DecoderException, InvalidKeySpecException, NoSuchAlgorithmException {
      GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
      oauthParameters.setOAuthCallback(CALLBACK);
      oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
      oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
      oauthParameters.setScope(SCOPE);
  
      OAuthSigner signer = new OAuthHmacSha1Signer();
      GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
  
      oauthHelper.getUnauthorizedRequestToken(oauthParameters);
  
      String requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters);
      System.out.println(requestUrl);
  
      String accessTokenSecret = oauthParameters.getOAuthTokenSecret();
      System.out.println("OAuth Access Token's Secret: " + accessTokenSecret);
      session.setAttribute("accessTokenSecret", accessTokenSecret);
  
      response.sendRedirect(requestUrl);
  }
  
  @RequestMapping("/oauthback.htm")
  public String oauthback(HttpServletRequest request, HttpSession session, Model model) throws Exception {
      GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
      oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
      oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
  
      GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());
      oauthHelper.getOAuthParametersFromCallback(request.getQueryString(), oauthParameters);
  
      String accessToken = oauthParameters.getOAuthToken();
      System.out.println("OAuth Access Token: " + accessToken);
  
      String accessTokenSecret = oauthParameters.getOAuthTokenSecret();
      System.out.println("OAuth Access Token's Secret: " + accessTokenSecret);
  
      //IMAP
      XoauthAuthenticator.initialize();
  
      IMAPSSLStore imapSslStore = XoauthAuthenticator.connectToImap("imap.googlemail.com",
              993,
              USER_EMAIL,
              accessToken,
              accessTokenSecret,
              new OAuthConsumer(CALLBACK, CONSUMER_KEY, CONSUMER_SECRET, null),
              true);
      System.out.println("Successfully authenticated to IMAP.\n");
      model.addAttribute("msg", "accessToken: " + accessToken + " accessTokenSecret: " + accessTokenSecret);
  
      return "errorView";
  }
  </code></pre>
  
  <p>What I am doing wrong? I bet this is something simple - but I am just trying for too long :)</p>