Remove lombok.
This commit is contained in:
parent
4f7077f6b7
commit
6efc2bcb49
8 changed files with 48 additions and 42 deletions
13
pom.xml
13
pom.xml
|
@ -81,7 +81,6 @@
|
||||||
<version.ch.qos.logback>1.2.8</version.ch.qos.logback>
|
<version.ch.qos.logback>1.2.8</version.ch.qos.logback>
|
||||||
<version.ch.qos.logback.contrib>0.1.5</version.ch.qos.logback.contrib>
|
<version.ch.qos.logback.contrib>0.1.5</version.ch.qos.logback.contrib>
|
||||||
<version.io.micronaut>3.2.3</version.io.micronaut>
|
<version.io.micronaut>3.2.3</version.io.micronaut>
|
||||||
<version.org.projectlombok>1.18.22</version.org.projectlombok>
|
|
||||||
|
|
||||||
<!-- plugins -->
|
<!-- plugins -->
|
||||||
|
|
||||||
|
@ -171,13 +170,6 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- build -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.projectlombok</groupId>
|
|
||||||
<artifactId>lombok</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- logback -->
|
<!-- logback -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
@ -208,11 +200,6 @@
|
||||||
<version>${version.org.apache.maven.plugins.compiler}</version>
|
<version>${version.org.apache.maven.plugins.compiler}</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<annotationProcessorPaths>
|
<annotationProcessorPaths>
|
||||||
<path>
|
|
||||||
<groupId>org.projectlombok</groupId>
|
|
||||||
<artifactId>lombok</artifactId>
|
|
||||||
<version>${version.org.projectlombok}</version>
|
|
||||||
</path>
|
|
||||||
<path>
|
<path>
|
||||||
<groupId>io.micronaut</groupId>
|
<groupId>io.micronaut</groupId>
|
||||||
<artifactId>micronaut-inject-java</artifactId>
|
<artifactId>micronaut-inject-java</artifactId>
|
||||||
|
|
|
@ -3,6 +3,8 @@ package io.kokuwa.micronaut.logging.http;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.reactivestreams.Publisher;
|
import org.reactivestreams.Publisher;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
import io.micronaut.core.async.publisher.Publishers;
|
import io.micronaut.core.async.publisher.Publishers;
|
||||||
|
@ -18,6 +20,7 @@ import io.micronaut.http.filter.ServerFilterChain;
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractMdcFilter implements HttpServerFilter {
|
public abstract class AbstractMdcFilter implements HttpServerFilter {
|
||||||
|
|
||||||
|
protected final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
protected final int order;
|
protected final int order;
|
||||||
protected final String prefix;
|
protected final String prefix;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ import io.micronaut.http.filter.ServerFilterChain;
|
||||||
import io.micronaut.http.filter.ServerFilterPhase;
|
import io.micronaut.http.filter.ServerFilterPhase;
|
||||||
import io.micronaut.runtime.context.scope.Refreshable;
|
import io.micronaut.runtime.context.scope.Refreshable;
|
||||||
import io.micronaut.security.authentication.Authentication;
|
import io.micronaut.security.authentication.Authentication;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter to add claims from authentication to MDC.
|
* Filter to add claims from authentication to MDC.
|
||||||
|
@ -28,7 +27,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Requires(classes = Authentication.class)
|
@Requires(classes = Authentication.class)
|
||||||
@Requires(property = AuthenticationMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
@Requires(property = AuthenticationMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
||||||
@Filter("${" + AuthenticationMdcFilter.PREFIX + ".path:/**}")
|
@Filter("${" + AuthenticationMdcFilter.PREFIX + ".path:/**}")
|
||||||
@Slf4j
|
|
||||||
public class AuthenticationMdcFilter extends AbstractMdcFilter {
|
public class AuthenticationMdcFilter extends AbstractMdcFilter {
|
||||||
|
|
||||||
public static final String PREFIX = "logger.http.authentication";
|
public static final String PREFIX = "logger.http.authentication";
|
||||||
|
|
|
@ -18,7 +18,6 @@ import io.micronaut.http.annotation.Filter;
|
||||||
import io.micronaut.http.filter.ServerFilterChain;
|
import io.micronaut.http.filter.ServerFilterChain;
|
||||||
import io.micronaut.http.filter.ServerFilterPhase;
|
import io.micronaut.http.filter.ServerFilterPhase;
|
||||||
import io.micronaut.runtime.context.scope.Refreshable;
|
import io.micronaut.runtime.context.scope.Refreshable;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter to add http headers to MDC.
|
* Filter to add http headers to MDC.
|
||||||
|
@ -29,7 +28,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Requires(property = HeaderMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
@Requires(property = HeaderMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
||||||
@Requires(property = HeaderMdcFilter.PREFIX + ".names")
|
@Requires(property = HeaderMdcFilter.PREFIX + ".names")
|
||||||
@Filter("${" + HeaderMdcFilter.PREFIX + ".path:/**}")
|
@Filter("${" + HeaderMdcFilter.PREFIX + ".path:/**}")
|
||||||
@Slf4j
|
|
||||||
public class HeaderMdcFilter extends AbstractMdcFilter {
|
public class HeaderMdcFilter extends AbstractMdcFilter {
|
||||||
|
|
||||||
public static final String PREFIX = "logger.http.header";
|
public static final String PREFIX = "logger.http.header";
|
||||||
|
|
|
@ -21,7 +21,6 @@ import io.micronaut.http.annotation.Filter;
|
||||||
import io.micronaut.http.filter.ServerFilterChain;
|
import io.micronaut.http.filter.ServerFilterChain;
|
||||||
import io.micronaut.http.filter.ServerFilterPhase;
|
import io.micronaut.http.filter.ServerFilterPhase;
|
||||||
import io.micronaut.runtime.context.scope.Refreshable;
|
import io.micronaut.runtime.context.scope.Refreshable;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter to add request path parts to MDC.
|
* Filter to add request path parts to MDC.
|
||||||
|
@ -32,7 +31,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Requires(property = PathMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
@Requires(property = PathMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
|
||||||
@Requires(property = PathMdcFilter.PREFIX + ".patterns")
|
@Requires(property = PathMdcFilter.PREFIX + ".patterns")
|
||||||
@Filter("${" + PathMdcFilter.PREFIX + ".path:/**}")
|
@Filter("${" + PathMdcFilter.PREFIX + ".path:/**}")
|
||||||
@Slf4j
|
|
||||||
public class PathMdcFilter extends AbstractMdcFilter {
|
public class PathMdcFilter extends AbstractMdcFilter {
|
||||||
|
|
||||||
public static final String PREFIX = "logger.http.path";
|
public static final String PREFIX = "logger.http.path";
|
||||||
|
|
|
@ -8,8 +8,6 @@ import java.util.Map;
|
||||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||||
import ch.qos.logback.contrib.json.classic.JsonLayout;
|
import ch.qos.logback.contrib.json.classic.JsonLayout;
|
||||||
import io.micronaut.core.util.StringUtils;
|
import io.micronaut.core.util.StringUtils;
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.experimental.Accessors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GCP logging layout.
|
* GCP logging layout.
|
||||||
|
@ -18,7 +16,6 @@ import lombok.experimental.Accessors;
|
||||||
* @see "https://cloud.google.com/logging/docs/agent/configuration#process-payload"
|
* @see "https://cloud.google.com/logging/docs/agent/configuration#process-payload"
|
||||||
* @see "https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext"
|
* @see "https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext"
|
||||||
*/
|
*/
|
||||||
@Accessors(chain = false)
|
|
||||||
public class GcpJsonLayout extends JsonLayout {
|
public class GcpJsonLayout extends JsonLayout {
|
||||||
|
|
||||||
private static final String UNDEFINED = "_IS_UNDEFINED";
|
private static final String UNDEFINED = "_IS_UNDEFINED";
|
||||||
|
@ -26,9 +23,7 @@ public class GcpJsonLayout extends JsonLayout {
|
||||||
private static final String SEVERITY_ATTR_NAME = "severity";
|
private static final String SEVERITY_ATTR_NAME = "severity";
|
||||||
|
|
||||||
private Map<String, String> serviceContext;
|
private Map<String, String> serviceContext;
|
||||||
@Setter
|
|
||||||
private String serviceName;
|
private String serviceName;
|
||||||
@Setter
|
|
||||||
private String serviceVersion;
|
private String serviceVersion;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,6 +2,9 @@ package io.kokuwa.micronaut.logging.mdc;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import ch.qos.logback.classic.Level;
|
import ch.qos.logback.classic.Level;
|
||||||
import io.kokuwa.micronaut.logging.LogbackUtil;
|
import io.kokuwa.micronaut.logging.LogbackUtil;
|
||||||
import io.micronaut.context.annotation.BootstrapContextCompatible;
|
import io.micronaut.context.annotation.BootstrapContextCompatible;
|
||||||
|
@ -11,7 +14,6 @@ import io.micronaut.context.env.Environment;
|
||||||
import io.micronaut.core.annotation.Internal;
|
import io.micronaut.core.annotation.Internal;
|
||||||
import io.micronaut.core.type.Argument;
|
import io.micronaut.core.type.Argument;
|
||||||
import io.micronaut.core.util.StringUtils;
|
import io.micronaut.core.util.StringUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure MDC filter.
|
* Configure MDC filter.
|
||||||
|
@ -24,11 +26,11 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@BootstrapContextCompatible
|
@BootstrapContextCompatible
|
||||||
@Context
|
@Context
|
||||||
@Internal
|
@Internal
|
||||||
@Slf4j
|
|
||||||
public class MDCTurboFilterConfigurer {
|
public class MDCTurboFilterConfigurer {
|
||||||
|
|
||||||
public static final String PREFIX = "logger.mdc";
|
public static final String PREFIX = "logger.mdc";
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(MDCTurboFilterConfigurer.class);
|
||||||
private final LogbackUtil logback;
|
private final LogbackUtil logback;
|
||||||
private final Environment environment;
|
private final Environment environment;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package io.kokuwa.micronaut.logging.http;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -9,8 +10,13 @@ import java.util.function.Consumer;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.nimbusds.jose.JOSEException;
|
||||||
import com.nimbusds.jwt.JWTClaimsSet;
|
import com.nimbusds.jwt.JWTClaimsSet;
|
||||||
|
|
||||||
import ch.qos.logback.classic.Level;
|
import ch.qos.logback.classic.Level;
|
||||||
|
@ -31,11 +37,6 @@ import io.micronaut.security.rules.SecurityRule;
|
||||||
import io.micronaut.security.token.jwt.signature.SignatureGeneratorConfiguration;
|
import io.micronaut.security.token.jwt.signature.SignatureGeneratorConfiguration;
|
||||||
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
|
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for {@link HttpServerFilter}.
|
* Test for {@link HttpServerFilter}.
|
||||||
|
@ -70,16 +71,19 @@ public abstract class AbstractFilterTest extends AbstractTest {
|
||||||
return token(subject, claims -> {});
|
return token(subject, claims -> {});
|
||||||
}
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
|
||||||
public String token(String subject, Consumer<JWTClaimsSet.Builder> manipulator) {
|
public String token(String subject, Consumer<JWTClaimsSet.Builder> manipulator) {
|
||||||
var claims = new JWTClaimsSet.Builder().subject(subject);
|
var claims = new JWTClaimsSet.Builder().subject(subject);
|
||||||
manipulator.accept(claims);
|
manipulator.accept(claims);
|
||||||
|
try {
|
||||||
return HttpHeaderValues.AUTHORIZATION_PREFIX_BEARER + " " + signature.sign(claims.build()).serialize();
|
return HttpHeaderValues.AUTHORIZATION_PREFIX_BEARER + " " + signature.sign(claims.build()).serialize();
|
||||||
|
} catch (JOSEException e) {
|
||||||
|
fail(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// request
|
// request
|
||||||
|
|
||||||
@SneakyThrows
|
|
||||||
public TestResponse get(String path, Map<String, String> headers) {
|
public TestResponse get(String path, Map<String, String> headers) {
|
||||||
|
|
||||||
var request = HttpRequest.GET(path);
|
var request = HttpRequest.GET(path);
|
||||||
|
@ -98,9 +102,10 @@ public abstract class AbstractFilterTest extends AbstractTest {
|
||||||
|
|
||||||
@Secured({ SecurityRule.IS_ANONYMOUS, SecurityRule.IS_AUTHENTICATED })
|
@Secured({ SecurityRule.IS_ANONYMOUS, SecurityRule.IS_AUTHENTICATED })
|
||||||
@Controller
|
@Controller
|
||||||
@Slf4j
|
|
||||||
public static class TestController {
|
public static class TestController {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(TestController.class);
|
||||||
|
|
||||||
@Get("/{+path}")
|
@Get("/{+path}")
|
||||||
TestResponse run(@PathVariable String path) {
|
TestResponse run(@PathVariable String path) {
|
||||||
|
|
||||||
|
@ -120,16 +125,36 @@ public abstract class AbstractFilterTest extends AbstractTest {
|
||||||
var mdc = MDC.getCopyOfContextMap();
|
var mdc = MDC.getCopyOfContextMap();
|
||||||
log.info("Found MDC: {}", mdc);
|
log.info("Found MDC: {}", mdc);
|
||||||
|
|
||||||
return new TestResponse(path, level.toString(), mdc == null ? Map.of() : mdc);
|
return new TestResponse(path, level.toString(), mdc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public static class TestResponse {
|
public static class TestResponse {
|
||||||
private String path;
|
|
||||||
private String level;
|
private final String path;
|
||||||
private Map<String, String> context = Map.of();
|
private final String level;
|
||||||
|
private final Map<String, String> context;
|
||||||
|
|
||||||
|
@JsonCreator
|
||||||
|
public TestResponse(
|
||||||
|
@JsonProperty("path") String path,
|
||||||
|
@JsonProperty("level") String level,
|
||||||
|
@JsonProperty("context") Map<String, String> context) {
|
||||||
|
this.path = path;
|
||||||
|
this.level = level;
|
||||||
|
this.context = context == null ? Map.of() : context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPath() {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getContext() {
|
||||||
|
return context;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue