LINUX.ORG.RU

История изменений

Исправление sanwashere, (текущая версия) :

Там только указанная реализация имеется, которая разрешает всех. Если нужен «белый» список адресов, то необходимо писать свою реализацию.

Что-то вроде этого:

package org.example.cassandra.auth;

import org.apache.cassandra.auth.IInternodeAuthenticator;
import org.apache.cassandra.exceptions.ConfigurationException;

import java.io.UncheckedIOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.file.Files;
import java.util.Objects;
import java.util.stream.Collectors;

public final class WhiteListAuthenticator
    implements IInternodeAuthenticator
{
    private static final File CONFIG_FILE = new File("/etc/cassandra/internode_whitelist");

    private final Set<InetAddress> allowed;

    public WhiteListAuthenticator()
    {
        try {
            allowed = Files.readAllLines(CONFIG_FILE.toPath())
                .stream()
                .map(line -> {
                    try {
                        return InetAddress.getByName(line);
                    }
                    catch (UnknownHostException e) {
                        throw new RuntimeException(e);
                    }
                })
                .collect(Collectors.toSet());
        }
        catch (IOException e) {
            throw new UncheckedIOException(e);
        }
    }

    @Override
    public boolean authenticate(InetAddress remoteAddress, int remotePort)
    {
        Objects.requireNonNull(remoteAddress, "null_remote_address");

        return allowed.contains(remoteAddress);
    }

    @Override
    void validateConfiguration()
        throws ConfigurationException
    {
        // No-op.
    }
}


И после компиляции подсунуть так, чтобы Cassandra его могла видеть. Дальше останется только прописать:
internode_authenticator: org.example.cassandra.auth.WhiteListAuthenticator

Ну и указать список адресов в /etc/cassandra/internode_whitelist.

Исходная версия sanwashere, :

Там только указанная реализация имеется, которая разрешает всех. Если нужен «белый» список адресов, то необходимо писать свою реализацию.