@Override
                    public CompletableFuture<Void> onConnectionClosing(@Nullable Object handback) {
                        return CompletableFuture.runAsync(() -> InternalComponentManager.getInstance().removeComponent(defaultSubdomain, (ExternalComponent) handback));
                    }
Authenticate the external component using a digest method. The digest includes the
stream ID and the secret key of the main domain of the external component. A component
needs to authenticate just once but it may bind several domains.

@param digest the digest sent in the handshake.
@return true if the authentication was successful.
xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalComponentSession.java