Skip to content

Commit

Permalink
feat(deps): update to micronaut 3.2 (#945)
Browse files Browse the repository at this point in the history
close #846
  • Loading branch information
tchiotludo committed Dec 13, 2021
1 parent a198839 commit bf8c68e
Show file tree
Hide file tree
Showing 61 changed files with 224 additions and 281 deletions.
6 changes: 5 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ dependencies {
implementation "io.micronaut:micronaut-inject"
implementation "io.micronaut:micronaut-validation"
implementation "io.micronaut:micronaut-runtime"
implementation "io.micronaut:micronaut-http-client"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "io.swagger.core.v3:swagger-annotations"
runtimeOnly 'ch.qos.logback:logback-classic:1.3.0-alpha5'
Expand All @@ -77,6 +76,9 @@ dependencies {
implementation 'io.micronaut.micrometer:micronaut-micrometer-registry-prometheus'
implementation "io.micronaut.cache:micronaut-cache-core"

implementation "io.micronaut.rxjava2:micronaut-rxjava2"
implementation "io.micronaut.rxjava2:micronaut-rxjava2-http-server-netty"

// kafka
implementation group: "org.apache.kafka", name: "kafka_" + kafkaScalaVersion, version: kafkaVersion
implementation group: "org.apache.kafka", name: "kafka-clients", version: kafkaVersion
Expand Down Expand Up @@ -147,6 +149,8 @@ dependencies {
testImplementation "io.micronaut.test:micronaut-test-junit5"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
testImplementation "org.junit.jupiter:junit-jupiter-params"
testImplementation "io.micronaut:micronaut-http-client"
testImplementation "io.micronaut.rxjava2:micronaut-rxjava2-http-client"

// test
testImplementation "org.apache.kafka:kafka-clients:" + kafkaVersion + ":test"
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
micronautVersion=2.5.5
micronautVersion=3.2.0
confluentVersion=6.1.1
kafkaVersion=2.8.0
kafkaScalaVersion=2.13
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.net.URL;
import java.util.List;
import java.util.Optional;
import javax.inject.Singleton;
import jakarta.inject.Singleton;

@Singleton
@Replaces(StaticResourceResolver.class)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/configs/JwtSecurityWarning.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import lombok.extern.slf4j.Slf4j;

import javax.annotation.PostConstruct;
import javax.inject.Singleton;
import jakarta.inject.Singleton;

@Singleton
@Slf4j
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/org/akhq/controllers/AbstractController.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import io.micronaut.security.utils.SecurityService;
import org.akhq.utils.DefaultGroupUtils;

import javax.inject.Inject;
import jakarta.inject.Inject;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
Expand Down Expand Up @@ -56,7 +56,6 @@ protected boolean isAllowed(String role) {
.anyMatch(s -> s.equals(role));
}

@SuppressWarnings("unchecked")
protected List<String> getRights() {
if (!applicationContext.containsBean(SecurityService.class)) {
return expandRoles(this.defaultGroupUtils.getDefaultRoles());
Expand All @@ -67,7 +66,7 @@ protected List<String> getRights() {
return expandRoles(
securityService
.getAuthentication()
.map(authentication -> (List<String>) authentication.getAttributes().get("roles"))
.map(authentication -> (List<String>) new ArrayList<>(authentication.getRoles()))
.orElseGet(() -> this.defaultGroupUtils.getDefaultRoles())
);
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/AclsController.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_ACLS_READ)
@Controller("/api/{cluster}/acls")
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/akhq/controllers/AkhqController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.akhq.controllers;

import io.micronaut.configuration.security.ldap.configuration.LdapConfiguration;
import io.micronaut.context.ApplicationContext;
import io.micronaut.core.annotation.Introspected;
import io.micronaut.core.annotation.Nullable;
Expand All @@ -9,6 +8,7 @@
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.security.annotation.Secured;
import io.micronaut.security.ldap.configuration.LdapConfiguration;
import io.micronaut.security.rules.SecurityRule;
import io.micronaut.security.utils.SecurityService;
import io.swagger.v3.oas.annotations.Hidden;
Expand All @@ -20,7 +20,7 @@
import org.akhq.modules.HasAnyPermission;
import org.akhq.utils.VersionProvider;

import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/ConnectController.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_CONNECT_READ)
@Controller("/api/{cluster}/connect/{connectId}")
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/GroupController.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_GROUP_READ)
@Controller("/api/{cluster}/group")
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/NodeController.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_NODE_READ)
@Controller
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/SchemaController.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_REGISTRY_READ)
@Controller
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/TailController.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_TOPIC_READ)
@Controller
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/controllers/TopicController.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;

import javax.inject.Inject;
import jakarta.inject.Inject;

@Secured(Role.ROLE_TOPIC_READ)
@Controller
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.inject.Singleton;
import jakarta.inject.Singleton;

@Singleton
@Requires(property = "akhq.server.access-log.enabled", value = StringUtils.TRUE, defaultValue = StringUtils.FALSE)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/middlewares/KafkaWrapperFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.akhq.modules.KafkaModule;
import org.reactivestreams.Publisher;

import javax.inject.Inject;
import jakarta.inject.Inject;

@Filter("/**")
public class KafkaWrapperFilter implements HttpServerFilter {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/akhq/modules/AbstractKafkaWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import javax.inject.Inject;
import jakarta.inject.Inject;

import static java.util.stream.Collectors.*;

Expand Down
20 changes: 10 additions & 10 deletions src/main/java/org/akhq/modules/BasicAuthAuthenticationProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import io.micronaut.http.HttpRequest;
import io.micronaut.security.authentication.*;
import io.reactivex.Flowable;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.akhq.configs.BasicAuth;
import org.akhq.configs.SecurityProperties;
import org.akhq.utils.ClaimProvider;
import org.reactivestreams.Publisher;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Optional;

@Singleton
Expand Down Expand Up @@ -39,16 +39,16 @@ public Publisher<AuthenticationResponse> authenticate(@Nullable HttpRequest<?> h
return Flowable.just(new AuthenticationFailed(AuthenticationFailureReason.CREDENTIALS_DO_NOT_MATCH));
}

ClaimProvider.AKHQClaimRequest request =
ClaimProvider.AKHQClaimRequest.builder()
.providerType(ClaimProvider.ProviderType.BASIC_AUTH)
.providerName(null)
.username(auth.getUsername())
.groups(auth.getGroups())
.build();
ClaimProvider.AKHQClaimRequest request = ClaimProvider.AKHQClaimRequest.builder()
.providerType(ClaimProvider.ProviderType.BASIC_AUTH)
.providerName(null)
.username(auth.getUsername())
.groups(auth.getGroups())
.build();

try {
ClaimProvider.AKHQClaimResponse claim = claimProvider.generateClaim(request);
return Flowable.just(new UserDetails(auth.getUsername(), claim.getRoles(), claim.getAttributes()));
return Flowable.just(AuthenticationResponse.success(auth.getUsername(), claim.getRoles(), claim.getAttributes()));
} catch (Exception e) {
String claimProviderClass = claimProvider.getClass().getName();
return Flowable.just(new AuthenticationFailed("Exception from ClaimProvider " + claimProviderClass + ": " + e.getMessage()));
Expand Down
15 changes: 4 additions & 11 deletions src/main/java/org/akhq/modules/HeaderAuthenticationFetcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@
import io.micronaut.core.async.publisher.Publishers;
import io.micronaut.http.HttpRequest;
import io.micronaut.security.authentication.Authentication;
import io.micronaut.security.authentication.AuthenticationUserDetailsAdapter;
import io.micronaut.security.authentication.Authenticator;
import io.micronaut.security.authentication.UserDetails;
import io.micronaut.security.authentication.ServerAuthentication;
import io.micronaut.security.config.SecurityConfigurationProperties;
import io.micronaut.security.filters.AuthenticationFetcher;
import io.micronaut.security.token.config.TokenConfiguration;
Expand All @@ -23,8 +22,8 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

@Requires(property = "akhq.security.header-auth.user-header")
@Singleton
Expand Down Expand Up @@ -109,16 +108,10 @@ public Publisher<Authentication> fetchAuthentication(HttpRequest<?> request) {
})
.switchMap(t -> {
if (t.isPresent()) {
UserDetails userDetails = new UserDetails(
return Flowable.just(new ServerAuthentication(
userHeaders.get(),
t.get().getRoles(),
t.get().getAttributes()
);

return Flowable.just(new AuthenticationUserDetailsAdapter(
userDetails,
configuration.getRolesName(),
configuration.getNameKey()
));
} else {
if (log.isDebugEnabled()) {
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/org/akhq/modules/KafkaModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import org.sourcelab.kafka.connect.apiclient.Configuration;
import org.sourcelab.kafka.connect.apiclient.KafkaConnectClient;

import javax.inject.Inject;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -91,7 +91,7 @@ private Properties getAdminProperties(String clusterId) {
return props;
}

private Map<String, AdminClient> adminClient = new HashMap<>();
private final Map<String, AdminClient> adminClient = new HashMap<>();

public AdminClient getAdminClient(String clusterId) {
if (!this.adminClient.containsKey(clusterId)) {
Expand Down Expand Up @@ -120,7 +120,7 @@ public KafkaConsumer<byte[], byte[]> getConsumer(String clusterId, Properties pr
);
}

private Map<String, KafkaProducer<byte[], byte[]>> producers = new HashMap<>();
private final Map<String, KafkaProducer<byte[], byte[]>> producers = new HashMap<>();

public KafkaProducer<byte[], byte[]> getProducer(String clusterId) {
if (!this.producers.containsKey(clusterId)) {
Expand Down Expand Up @@ -175,9 +175,9 @@ public RestService getRegistryRestClient(String clusterId) {
&& !connection.getSchemaRegistry().getProperties().isEmpty()) {

Map<String, Object> sslConfigs =
(Map) connection.getSchemaRegistry().getProperties().entrySet().stream()
.filter(e -> e.getKey().startsWith("schema.registry."))
.collect(Collectors.toMap(e -> e.getKey().substring("schema.registry.".length()), Map.Entry::getValue));
connection.getSchemaRegistry().getProperties().entrySet().stream()
.filter(e -> e.getKey().startsWith("schema.registry."))
.collect(Collectors.toMap(e -> e.getKey().substring("schema.registry.".length()), Map.Entry::getValue));

SslFactory sslFactory = new SslFactory(sslConfigs);
if (sslFactory != null && sslFactory.sslContext() != null) {
Expand Down Expand Up @@ -208,7 +208,7 @@ public RestService getRegistryRestClient(String clusterId) {
return null;
}

private Map<String, SchemaRegistryClient> registryClient = new HashMap<>();
private final Map<String, SchemaRegistryClient> registryClient = new HashMap<>();

public SchemaRegistryClient getRegistryClient(String clusterId) {
if (!this.registryClient.containsKey(clusterId)) {
Expand All @@ -233,7 +233,7 @@ public SchemaRegistryClient getRegistryClient(String clusterId) {
return this.registryClient.get(clusterId);
}

private Map<String, Map<String, KafkaConnectClient>> connectRestClient = new HashMap<>();
private final Map<String, Map<String, KafkaConnectClient>> connectRestClient = new HashMap<>();

public Map<String, KafkaConnectClient> getConnectRestClient(String clusterId) {
if (!this.connectRestClient.containsKey(clusterId)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
package org.akhq.modules;

import io.micronaut.configuration.security.ldap.ContextAuthenticationMapper;
import io.micronaut.configuration.security.ldap.DefaultContextAuthenticationMapper;
import io.micronaut.context.annotation.Replaces;
import io.micronaut.core.convert.value.ConvertibleValues;
import io.micronaut.security.authentication.AuthenticationFailed;
import io.micronaut.security.authentication.AuthenticationResponse;
import io.micronaut.security.authentication.UserDetails;
import io.micronaut.security.ldap.ContextAuthenticationMapper;
import io.micronaut.security.ldap.DefaultContextAuthenticationMapper;
import org.akhq.utils.ClaimProvider;

import javax.inject.Inject;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.util.List;
import java.util.Set;

@Singleton
@Replaces(DefaultContextAuthenticationMapper.class)
public class LdapContextAuthenticationMapper implements ContextAuthenticationMapper {

@Inject
private ClaimProvider claimProvider;

Expand All @@ -31,12 +29,10 @@ public AuthenticationResponse map(ConvertibleValues<Object> attributes, String u
.build();
try {
ClaimProvider.AKHQClaimResponse claim = claimProvider.generateClaim(request);
return new UserDetails(username, claim.getRoles(), claim.getAttributes());
return AuthenticationResponse.success(username, claim.getRoles(), claim.getAttributes());
} catch (Exception e) {
String claimProviderClass = claimProvider.getClass().getName();
return new AuthenticationFailed("Exception from ClaimProvider " + claimProviderClass + ": " + e.getMessage());
}
}


}
Loading

0 comments on commit bf8c68e

Please sign in to comment.