@Override
    public Directory<Connection> getConnectionDirectory() throws GuacamoleException {
        return new HistoryTrackingConnectionDirectory(
                super.getConnectionDirectory(), self(),
                this.remoteHost, this.connectionRecordMapper);
    }
Creates a new HistoryTrackingUserContext which wraps the given
UserContext, allowing for tracking of connection history external to
this authentication provider.

@param userContext
    The UserContext to wrap.

@param remoteHost
    The host that the user associated with the given user context connected from.

@param connectionRecordMapper
    The mapper to use when writing connection history entries to the DB.
extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/HistoryTrackingUserContext.java