code: public CRestBuilder oauth(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret, String sessionHandle, String accessTokenRefreshUrl) {
          this.auth = "oauth";
          if(sessionHandle != null) {
              this.accessOAuthToken = new OAuthToken(accessToken, accessTokenSecret, singletonMap("oauth_session_handle", sessionHandle));
          }else{
              this.accessOAuthToken = new OAuthToken(accessToken, accessTokenSecret);
          }
          if(accessTokenRefreshUrl != null) {
              property(MethodConfig.METHOD_CONFIG_DEFAULT_RETRY_HANDLER, RefreshAuthorizationRetryHandler.class);
              property(RefreshAuthorizationRetryHandler.UNAUTHORIZED_STATUS_CODE_PROP, HTTP_UNAUTHORIZED);
          }
          this.accessTokenRefreshUrl = accessTokenRefreshUrl;
          this.consumerOAuthToken = new OAuthToken(consumerKey, consumerSecret);
          return this;
      }
docs: <p>Configures the resulting <b>CRest</b> instance to authenticate all requests using OAuth 1.0</p>
  <p>When the end-point indicates the access token is expired, <b>CRest</b> will use the given session handle and access toklen refresh url to refresh the access token used as defined in <a href="http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html">OAuth Session 1.0 Draft 1</a></p>
  @param consumerKey consumer key to use
  @param consumerSecret consumer secret to use
  @param accessToken access token to use
  @param accessTokenSecret access token secret to use
  @param sessionHandle session handle to use to refresh an expired access token
  @param accessTokenRefreshUrl url to use to refresh an expired access token
  @return current builder
  @see <a href="http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html">OAuth Session 1.0 Draft 1</a>