2626import com .arangodb .async .internal .ArangoDBAsyncImpl ;
2727import com .arangodb .async .internal .velocystream .VstCommunicationAsync ;
2828import com .arangodb .async .internal .velocystream .VstConnectionFactoryAsync ;
29- import com .arangodb .entity .ArangoDBVersion ;
30- import com .arangodb .entity .LoadBalancingStrategy ;
31- import com .arangodb .entity .LogEntity ;
32- import com .arangodb .entity .LogEntriesEntity ;
33- import com .arangodb .entity .LogLevelEntity ;
34- import com .arangodb .entity .Permissions ;
35- import com .arangodb .entity .ServerRole ;
36- import com .arangodb .entity .UserEntity ;
29+ import com .arangodb .entity .*;
3730import com .arangodb .internal .ArangoContext ;
3831import com .arangodb .internal .ArangoDefaults ;
3932import com .arangodb .internal .InternalArangoDBBuilder ;
5346import com .arangodb .util .ArangoDeserializer ;
5447import com .arangodb .util .ArangoSerialization ;
5548import com .arangodb .util .ArangoSerializer ;
56- import com .arangodb .velocypack .VPack ;
57- import com .arangodb .velocypack .VPackAnnotationFieldFilter ;
58- import com .arangodb .velocypack .VPackAnnotationFieldNaming ;
59- import com .arangodb .velocypack .VPackDeserializer ;
60- import com .arangodb .velocypack .VPackInstanceCreator ;
61- import com .arangodb .velocypack .VPackJsonDeserializer ;
62- import com .arangodb .velocypack .VPackJsonSerializer ;
63- import com .arangodb .velocypack .VPackModule ;
64- import com .arangodb .velocypack .VPackParser ;
65- import com .arangodb .velocypack .VPackParserModule ;
66- import com .arangodb .velocypack .VPackSerializer ;
67- import com .arangodb .velocypack .ValueType ;
49+ import com .arangodb .velocypack .*;
6850import com .arangodb .velocystream .Request ;
6951import com .arangodb .velocystream .Response ;
7052
@@ -92,6 +74,14 @@ public interface ArangoDBAsync extends ArangoSerializationAccessor {
9274
9375 void shutdown () throws ArangoDBException ;
9476
77+ /**
78+ * Updates the JWT used for requests authorization. It does not change already existing VST connections, since VST
79+ * connections are authenticated during the initialization phase.
80+ *
81+ * @param jwt token to use
82+ */
83+ void updateJwt (String jwt );
84+
9585 /**
9686 * Returns a handler of the system database
9787 *
@@ -281,10 +271,8 @@ public interface ArangoDBAsync extends ArangoSerializationAccessor {
281271 /**
282272 * Returns fatal, error, warning or info log messages from the server's global log.
283273 *
284- * @param options
285- * Additional options, can be null
274+ * @param options Additional options, can be null
286275 * @return the log messages
287- *
288276 * @see <a href= "https://www.arangodb.com/docs/stable/http/administration-and-monitoring.html#read-global-logs-from-the-server">API
289277 * Documentation</a>
290278 * @deprecated use {@link #getLogEntries(LogOptions)} instead
@@ -295,10 +283,8 @@ public interface ArangoDBAsync extends ArangoSerializationAccessor {
295283 /**
296284 * Returns the server logs
297285 *
298- * @param options
299- * Additional options, can be null
286+ * @param options Additional options, can be null
300287 * @return the log messages
301- *
302288 * @see <a href= "https://www.arangodb.com/docs/stable/http/administration-and-monitoring.html#read-global-logs-from-the-server">API
303289 * Documentation</a>
304290 * @since ArangoDB 3.8
@@ -383,6 +369,17 @@ public Builder password(final String password) {
383369 return this ;
384370 }
385371
372+ /**
373+ * Sets the JWT for the user authentication.
374+ *
375+ * @param jwt token to use (default: {@code null})
376+ * @return {@link ArangoDBAsync.Builder}
377+ */
378+ public Builder jwt (final String jwt ) {
379+ setJwt (jwt );
380+ return this ;
381+ }
382+
386383 /**
387384 * If set to <code>true</code> SSL will be used when connecting to an ArangoDB server.
388385 *
@@ -812,18 +809,20 @@ public synchronized ArangoDBAsync build() {
812809 syncBuilder (syncHostHandler ),
813810 asyncHostResolver ,
814811 syncHostResolver ,
812+ asyncHostHandler ,
813+ syncHostHandler ,
815814 new ArangoContext ());
816815 }
817816
818817 private VstCommunicationAsync .Builder asyncBuilder (final HostHandler hostHandler ) {
819818 return new VstCommunicationAsync .Builder (hostHandler ).timeout (timeout ).user (user ).password (password )
820- .useSsl (useSsl ).sslContext (sslContext ).chunksize (chunksize ).maxConnections (maxConnections )
819+ .jwt ( jwt ). useSsl (useSsl ).sslContext (sslContext ).chunksize (chunksize ).maxConnections (maxConnections )
821820 .connectionTtl (connectionTtl );
822821 }
823822
824823 private VstCommunicationSync .Builder syncBuilder (final HostHandler hostHandler ) {
825824 return new VstCommunicationSync .Builder (hostHandler ).timeout (timeout ).user (user ).password (password )
826- .useSsl (useSsl ).sslContext (sslContext ).chunksize (chunksize ).maxConnections (maxConnections )
825+ .jwt ( jwt ). useSsl (useSsl ).sslContext (sslContext ).chunksize (chunksize ).maxConnections (maxConnections )
827826 .connectionTtl (connectionTtl );
828827 }
829828
0 commit comments