class AnonymousClient extends DirectClient {

    /** Constant <code>INSTANCE</code> */
    public static final AnonymousClient INSTANCE = new AnonymousClient();

    private static boolean warned;

    /**
     * <p>Constructor for AnonymousClient.</p>
     */
    public AnonymousClient() {
        if (!warned) {
            logger.warn("Be careful when using the 'AnonymousClient': an 'AnonymousProfile' is returned "
                + "and the access is granted for the request.");
            warned = true;
        }
    }

    /** {@inheritDoc} */
    @Override
    protected void internalInit(final boolean forceReinit) {<FILL_FUNCTION_BODY>}
}

        setCredentialsExtractorIfUndefined(ctx -> Optional.of(AnonymousCredentials.INSTANCE));
        setAuthenticatorIfUndefined((ctx, cred) -> {
            cred.setUserProfile(AnonymousProfile.INSTANCE);
            return Optional.of(AnonymousCredentials.INSTANCE);
        });
    
<methods>public non-sealed void <init>() ,public final Optional<org.pac4j.core.exception.http.RedirectionAction> getLogoutAction(CallContext, org.pac4j.core.profile.UserProfile, java.lang.String) ,public final Optional<org.pac4j.core.exception.http.RedirectionAction> getRedirectionAction(CallContext) ,public final org.pac4j.core.exception.http.HttpAction processLogout(CallContext, org.pac4j.core.credentials.Credentials) <variables>