code: public Future<AuthenticationResult> acquireTokenByAuthorizationCode(
              final String authorizationCode, final URI redirectUri,
              final ClientAssertion clientAssertion,
              final AuthenticationCallback callback) {
          return acquireTokenByAuthorizationCode(authorizationCode, redirectUri,
                  clientAssertion, (String) null, callback);
      }
docs: Acquires security token from the authority using an authorization code
  previously received.
  
  @param authorizationCode
  The authorization code received from service authorization
  endpoint.
  @param redirectUri
  The redirect address used for obtaining authorization code.
  @param clientAssertion
  The client assertion to use for client authentication.
  @param callback
  optional callback object for non-blocking execution.
  @return A {@link Future} object representing the
  {@link AuthenticationResult} of the call. It contains Access
  Token, Refresh Token and the Access Token's expiration time.