Skip to content

Commit

Permalink
feat(acls): use no op security service when security is off #1705 (#1706
Browse files Browse the repository at this point in the history
)

close #1704
  • Loading branch information
ebrard committed Apr 5, 2024
1 parent c7739fd commit 50705e6
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 8 deletions.
12 changes: 4 additions & 8 deletions src/main/java/org/akhq/modules/AuditModule.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
package org.akhq.modules;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.micronaut.context.annotation.Requires;
import io.micronaut.security.utils.SecurityService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
import org.akhq.configs.Audit;
import org.akhq.models.audit.AuditEvent;
import io.micronaut.security.utils.SecurityService;
import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;

import java.time.LocalDateTime;
import java.util.Optional;

@Singleton
@Slf4j
public class AuditModule {

@Inject
SecurityService securityService;
Optional<SecurityService> securityService;

@Inject
KafkaModule kafkaModule;
Expand All @@ -40,7 +36,7 @@ public void save(AuditEvent event) {


byte[] value;
securityService.username().ifPresent(event::setUserName);
securityService.flatMap(SecurityService::username).ifPresent(event::setUserName);
try {
value = mapper.writeValueAsBytes(event);
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package org.akhq.modules.audit;

import io.micronaut.context.ApplicationContext;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import jakarta.inject.Inject;
import org.akhq.AbstractTest;
import org.akhq.KafkaClusterExtension;
import org.akhq.KafkaTestCluster;
import org.akhq.modules.KafkaModule;
import org.akhq.repositories.TopicRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import java.io.IOException;
import java.util.Collections;
import java.util.concurrent.ExecutionException;

/**
* This only tests instantiation
*/
@ExtendWith(KafkaClusterExtension.class)
@MicronautTest(environments = "audit-no-security")
public class KafkaAuditModuleNoSecTest extends AbstractTest {

@Inject
@InjectMocks
protected TopicRepository topicRepository;

@Mock
ApplicationContext applicationContext;

@BeforeEach
void before() {
MockitoAnnotations.initMocks(this);
}

@Test
void topicAuditNoSec() throws ExecutionException, InterruptedException {
topicRepository.create(KafkaTestCluster.CLUSTER_ID, "generated_dummy-no-sec", 1, (short) 1, Collections.emptyList()
);
}

}
8 changes: 8 additions & 0 deletions src/test/resources/application-audit-no-security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
micronaut:
security:
enabled: false
akhq:
audit:
enabled: true
cluster-id: test
topic-name: audit

0 comments on commit 50705e6

Please sign in to comment.