private void handleAuthenticationException(final ClientProxyMembershipID clientProxyMembershipID,
      final DataOutputStream dataOutputStream, final KnownVersion clientVersion,
      final GemFireSecurityException ex, final byte replyExceptionAuthenticationFailed)
      throws IOException {
    securityLogWriter.warning(
        String.format("An exception was thrown for client [%s]. %s",
            clientProxyMembershipID, ex));
    socketMessageWriter.writeException(dataOutputStream, replyExceptionAuthenticationFailed, ex,
        clientVersion);
  }
Continues the registration of a new client that wants to receive updates with this server.

@param clientRegistrationMetadata Contains registration info pertaining to the client
@param socket The socket over which the server communicates with the client.
@param isPrimary Whether server is the primary subscription end point for this client
@param acceptorId ID of the acceptor used to clean up the client connection
@param notifyBySubscription Whether the Server is running in NotifyBySubscription mode
@throws IOException Can occur if there are issues communicating over the socket
@throws CacheException A generic exception, which indicates a cache error has occurred.
@throws ClassNotFoundException Thrown when the ClientProxyMembershipID class is not found
@throws NoSuchMethodException Potentially thrown by performPostAuthorization
@throws InvocationTargetException Potentially thrown by performPostAuthorization
@throws IllegalAccessException Potentially thrown by performPostAuthorization
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java