code: public Url authToken(AuthToken authToken) {
          if (this.authToken == null) {
              this.authToken = authToken;
          } else if (authToken == null || authToken.equals(AuthToken.NULL_AUTH_TOKEN)) {
              this.authToken = authToken;
          } else {
              this.authToken = this.authToken.merge(authToken);
          }
          return this;
      }
docs: Set the authorization token. If <code>authToken</code> has already been set the parameter is <b>merged</b> with the current value unless the parameter value is <code>null</code> or <code>NULL_AUTH_TOKEN</code>.<br><br>
  For example, to generate an authorized URL with a different duration:<br>
  <pre class="prettyprint">
  {@code
  cloudinary.config.authToken = new AuthToken(KEY).duration(500);
  // later...
  cloudinary.url().signed(true).authToken(new AuthToken().duration(300))
  .type("authenticated").version("1486020273").generate("sample.jpg");
  }
  </pre>
  
  @param authToken an authorization token object
  @return this