public void start() {
        // Run through the server sessions every 3 minutes after a 3 minutes server startup delay (default values)
        Duration period = Duration.ofMinutes(3);
        TaskEngine.getInstance().scheduleAtFixedRate(new ServerCleanupTask(), period, period);

        final Duration preAuthPeriod = ConnectionSettings.Client.PREAUTH_TIMEOUT_PROPERTY.getValue().compareTo(Duration.ofSeconds(5)) > 0 ? ConnectionSettings.Client.PREAUTH_TIMEOUT_PROPERTY.getValue() : Duration.ofSeconds(5);
        TaskEngine.getInstance().scheduleAtFixedRate(new PreAuthenticatedSessionCleanupTask(), preAuthPeriod, preAuthPeriod);
    }
Finds a client session for the provided address that has been established, but has not yet authenticated. This
method returns null if no such session can be found.

Pre-authenticated sessions aren't assigned a user-resolvable address (as no user has been authenticated). As such
the address associated with such sessions are JIDs that have a domain and resource-part, but no local-part. This
address is assigned by Openfire to a unique value, that is not expected to be known to the client.

@param address The address for which to find a pre-authenticated session (must not have a local-part).
@return the matching session if one is found, otherwise null.
xmppserver/src/main/java/org/jivesoftware/openfire/LocalSessionManager.java