Search in sources :

Example 1 with ScramCredential

use of org.apache.kafka.common.security.scram.ScramCredential in project apache-kafka-on-k8s by banzaicloud.

the class SaslAuthenticatorTest method updateTokenCredentialCache.

private void updateTokenCredentialCache(String username, String password) throws NoSuchAlgorithmException {
    for (String mechanism : (List<String>) saslServerConfigs.get(BrokerSecurityConfigs.SASL_ENABLED_MECHANISMS_CONFIG)) {
        ScramMechanism scramMechanism = ScramMechanism.forMechanismName(mechanism);
        if (scramMechanism != null) {
            ScramFormatter formatter = new ScramFormatter(scramMechanism);
            ScramCredential credential = formatter.generateCredential(password, 4096);
            server.tokenCache().credentialCache(scramMechanism.mechanismName()).put(username, credential);
        }
    }
}
Also used : ScramCredential(org.apache.kafka.common.security.scram.ScramCredential) ScramFormatter(org.apache.kafka.common.security.scram.ScramFormatter) ScramMechanism(org.apache.kafka.common.security.scram.ScramMechanism) List(java.util.List) ArrayList(java.util.ArrayList)

Example 2 with ScramCredential

use of org.apache.kafka.common.security.scram.ScramCredential in project kafka by apache.

the class ScramCredentialUtilsTest method stringConversion.

@Test
public void stringConversion() {
    ScramCredential credential = formatter.generateCredential("password", 1024);
    assertTrue(credential.salt().length > 0, "Salt must not be empty");
    assertTrue(credential.storedKey().length > 0, "Stored key must not be empty");
    assertTrue(credential.serverKey().length > 0, "Server key must not be empty");
    ScramCredential credential2 = ScramCredentialUtils.credentialFromString(ScramCredentialUtils.credentialToString(credential));
    assertArrayEquals(credential.salt(), credential2.salt());
    assertArrayEquals(credential.storedKey(), credential2.storedKey());
    assertArrayEquals(credential.serverKey(), credential2.serverKey());
    assertEquals(credential.iterations(), credential2.iterations());
}
Also used : ScramCredential(org.apache.kafka.common.security.scram.ScramCredential) Test(org.junit.jupiter.api.Test)

Example 3 with ScramCredential

use of org.apache.kafka.common.security.scram.ScramCredential in project kafka by apache.

the class ScramCredentialUtilsTest method scramCredentialCache.

@Test
public void scramCredentialCache() throws Exception {
    CredentialCache cache = new CredentialCache();
    ScramCredentialUtils.createCache(cache, Arrays.asList("SCRAM-SHA-512", "PLAIN"));
    assertNotNull(cache.cache(ScramMechanism.SCRAM_SHA_512.mechanismName(), ScramCredential.class), "Cache not created for enabled mechanism");
    assertNull(cache.cache(ScramMechanism.SCRAM_SHA_256.mechanismName(), ScramCredential.class), "Cache created for disabled mechanism");
    CredentialCache.Cache<ScramCredential> sha512Cache = cache.cache(ScramMechanism.SCRAM_SHA_512.mechanismName(), ScramCredential.class);
    ScramFormatter formatter = new ScramFormatter(ScramMechanism.SCRAM_SHA_512);
    ScramCredential credentialA = formatter.generateCredential("password", 4096);
    sha512Cache.put("userA", credentialA);
    assertEquals(credentialA, sha512Cache.get("userA"));
    assertNull(sha512Cache.get("userB"), "Invalid user credential");
}
Also used : ScramCredential(org.apache.kafka.common.security.scram.ScramCredential) CredentialCache(org.apache.kafka.common.security.authenticator.CredentialCache) Test(org.junit.jupiter.api.Test)

Example 4 with ScramCredential

use of org.apache.kafka.common.security.scram.ScramCredential in project kafka by apache.

the class SaslAuthenticatorTest method updateTokenCredentialCache.

@SuppressWarnings("unchecked")
private void updateTokenCredentialCache(String username, String password) throws NoSuchAlgorithmException {
    for (String mechanism : (List<String>) saslServerConfigs.get(BrokerSecurityConfigs.SASL_ENABLED_MECHANISMS_CONFIG)) {
        ScramMechanism scramMechanism = ScramMechanism.forMechanismName(mechanism);
        if (scramMechanism != null) {
            ScramFormatter formatter = new ScramFormatter(scramMechanism);
            ScramCredential credential = formatter.generateCredential(password, 4096);
            server.tokenCache().credentialCache(scramMechanism.mechanismName()).put(username, credential);
        }
    }
}
Also used : ScramCredential(org.apache.kafka.common.security.scram.ScramCredential) ScramFormatter(org.apache.kafka.common.security.scram.internals.ScramFormatter) ScramMechanism(org.apache.kafka.common.security.scram.internals.ScramMechanism) ArrayList(java.util.ArrayList) List(java.util.List)

Example 5 with ScramCredential

use of org.apache.kafka.common.security.scram.ScramCredential in project kafka by apache.

the class ScramSaslServerTest method setUp.

@BeforeEach
public void setUp() throws Exception {
    mechanism = ScramMechanism.SCRAM_SHA_256;
    formatter = new ScramFormatter(mechanism);
    CredentialCache.Cache<ScramCredential> credentialCache = new CredentialCache().createCache(mechanism.mechanismName(), ScramCredential.class);
    credentialCache.put(USER_A, formatter.generateCredential("passwordA", 4096));
    credentialCache.put(USER_B, formatter.generateCredential("passwordB", 4096));
    ScramServerCallbackHandler callbackHandler = new ScramServerCallbackHandler(credentialCache, new DelegationTokenCache(ScramMechanism.mechanismNames()));
    saslServer = new ScramSaslServer(mechanism, new HashMap<String, Object>(), callbackHandler);
}
Also used : ScramCredential(org.apache.kafka.common.security.scram.ScramCredential) HashMap(java.util.HashMap) CredentialCache(org.apache.kafka.common.security.authenticator.CredentialCache) DelegationTokenCache(org.apache.kafka.common.security.token.delegation.internals.DelegationTokenCache) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

ScramCredential (org.apache.kafka.common.security.scram.ScramCredential)10 ArrayList (java.util.ArrayList)4 List (java.util.List)4 Test (org.junit.jupiter.api.Test)3 CredentialCache (org.apache.kafka.common.security.authenticator.CredentialCache)2 ScramFormatter (org.apache.kafka.common.security.scram.ScramFormatter)2 ScramMechanism (org.apache.kafka.common.security.scram.ScramMechanism)2 ScramFormatter (org.apache.kafka.common.security.scram.internals.ScramFormatter)2 ScramMechanism (org.apache.kafka.common.security.scram.internals.ScramMechanism)2 InvalidKeyException (java.security.InvalidKeyException)1 HashMap (java.util.HashMap)1 Properties (java.util.Properties)1 KafkaException (org.apache.kafka.common.KafkaException)1 DelegationTokenCache (org.apache.kafka.common.security.token.delegation.internals.DelegationTokenCache)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1