@@ -101,16 +101,35 @@ public abstract class AuthTokenMinter implements FleetEngineTokenProvider {
101101 /** Authorization state manager responsible for caching signed JWTs. */
102102 public abstract FleetEngineAuthTokenStateManager tokenStateManager ();
103103
104+ /** Specifies which server signer to use by default. */
105+ abstract DefaultServerTokenType defaultServerTokenType ();
106+
104107 /**
105- * Provides a builder for FleetEngineToken.
108+ * Provides a builder for FleetEngineToken. Signs with {@link #serverSigner()} when acting as
109+ * {@link FleetEngineTokenProvider}.
106110 *
107111 * <p>{@link NaiveAuthStateManager} set as default state manager.
108112 */
109113 public static AuthTokenMinter .Builder builder () {
110114 FleetEngineTokenFactorySettings settings = FleetEngineTokenFactorySettings .builder ().build ();
111115 return new AutoValue_AuthTokenMinter .Builder ()
112116 .setTokenStateManager (new NaiveAuthStateManager ())
113- .setTokenFactory (new FleetEngineTokenFactory (settings ));
117+ .setTokenFactory (new FleetEngineTokenFactory (settings ))
118+ .setDefaultServerTokenType (DefaultServerTokenType .ODRD );
119+ }
120+
121+ /**
122+ * Provides a builder for FleetEngineToken.<br>
123+ * Signs with {@link #deliveryServerSigner()} when acting as {@link FleetEngineTokenProvider}.
124+ *
125+ * <p>{@link NaiveAuthStateManager} set as default state manager.
126+ */
127+ public static AuthTokenMinter .Builder deliveryBuilder () {
128+ FleetEngineTokenFactorySettings settings = FleetEngineTokenFactorySettings .builder ().build ();
129+ return new AutoValue_AuthTokenMinter .Builder ()
130+ .setTokenStateManager (new NaiveAuthStateManager ())
131+ .setTokenFactory (new FleetEngineTokenFactory (settings ))
132+ .setDefaultServerTokenType (DefaultServerTokenType .LMFS );
114133 }
115134
116135 /**
@@ -352,6 +371,9 @@ public FleetEngineToken getCustomToken(FleetEngineTokenClaims claims)
352371 /** Returns a non-expired server token with a base64 signed JWT. */
353372 @ Override
354373 public FleetEngineToken getSignedToken () throws SigningTokenException {
374+ if (defaultServerTokenType () == DefaultServerTokenType .LMFS ) {
375+ return getDeliveryServerToken ();
376+ }
355377 return getServerToken ();
356378 }
357379
@@ -397,15 +419,28 @@ public abstract static class Builder {
397419 public abstract Builder setTokenFactory (TokenFactory tokenFactory );
398420
399421 /**
400- * Sets the authorization state manager responsible for caching signed JWTs
422+ * Sets the authorization state manager responsible for caching signed JWTs.
401423 *
402424 * <p>By default, uses a naive manager that only caches server tokens.
403425 *
404426 * @param manager manager providing valid tokens
405427 */
406428 public abstract Builder setTokenStateManager (FleetEngineAuthTokenStateManager manager );
407429
430+ /**
431+ * Specifies whether to provide default Odrd or Lmfs token by default.
432+ *
433+ * @param defaultServerTokenType specifies the type of token to produce by default
434+ */
435+ abstract Builder setDefaultServerTokenType (DefaultServerTokenType defaultServerTokenType );
436+
408437 /** Builds {@link AuthTokenMinter}. */
409438 public abstract AuthTokenMinter build ();
410439 }
440+
441+ /** Used internally to specify whether to provide ODRD or LMFS tokens by default. */
442+ enum DefaultServerTokenType {
443+ ODRD ,
444+ LMFS ;
445+ }
411446}
0 commit comments