From e2b214ffb473b8803675c1c5c32626159c77510f Mon Sep 17 00:00:00 2001 From: dengtao <981376577@qq.com> Date: Thu, 5 Sep 2024 17:14:05 +0800 Subject: [PATCH] xx --- .../ddd/application/config/LogbookConfig.java | 60 +++++++++++++++++++ .../src/main/resources/application-dev.yml | 39 ++++++++++++ taotao-cloud-ddd-domain/build.gradle | 8 +++ 3 files changed, 107 insertions(+) create mode 100644 taotao-cloud-ddd-application/src/main/java/com/taotao/cloud/ddd/application/config/LogbookConfig.java diff --git a/taotao-cloud-ddd-application/src/main/java/com/taotao/cloud/ddd/application/config/LogbookConfig.java b/taotao-cloud-ddd-application/src/main/java/com/taotao/cloud/ddd/application/config/LogbookConfig.java new file mode 100644 index 0000000..71d78ca --- /dev/null +++ b/taotao-cloud-ddd-application/src/main/java/com/taotao/cloud/ddd/application/config/LogbookConfig.java @@ -0,0 +1,60 @@ +package com.taotao.cloud.ddd.application.config; + +import java.io.IOException; +import org.springframework.context.annotation.Bean; +import org.zalando.logbook.Correlation; +import org.zalando.logbook.HttpRequest; +import org.zalando.logbook.HttpResponse; +import org.zalando.logbook.Logbook; +import org.zalando.logbook.Precorrelation; +import org.zalando.logbook.Sink; +import org.zalando.logbook.core.Conditions; +import org.zalando.logbook.core.DefaultHttpLogFormatter; +import org.zalando.logbook.core.DefaultHttpLogWriter; +import org.zalando.logbook.core.DefaultSink; + +public class LogbookConfig { + + @Bean + public Logbook logbook() { + return Logbook.builder() + .condition(Conditions.exclude(Conditions.requestTo("/users/*"), + Conditions.contentType("application/json"))) + .sink(new DefaultSink(new DefaultHttpLogFormatter(), new DefaultHttpLogWriter())) + .sink(new Sink() { + @Override + public boolean isActive() { + return Sink.super.isActive(); + } + + @Override + public void write(Precorrelation precorrelation, HttpRequest request) + throws IOException { + + } + + @Override + public void write(Correlation correlation, HttpRequest request, + HttpResponse response) + throws IOException { + + } + + @Override + public void writeBoth(Correlation correlation, HttpRequest request, + HttpResponse response) + throws IOException { + System.err.println("=============================="); + System.err.println("request header:\t" + request.getHeaders()); + System.err.println("request body:\t" + request.getBodyAsString()); + System.out.println(); + System.err.println("response header:\t" + response.getHeaders()); + System.err.println("response body:\t" + response.getBodyAsString()); + System.err.println("=============================="); + } + }) + .build(); + } + + ; +} diff --git a/taotao-cloud-ddd-assembly/src/main/resources/application-dev.yml b/taotao-cloud-ddd-assembly/src/main/resources/application-dev.yml index 955f931..6be49c5 100644 --- a/taotao-cloud-ddd-assembly/src/main/resources/application-dev.yml +++ b/taotao-cloud-ddd-assembly/src/main/resources/application-dev.yml @@ -1275,6 +1275,7 @@ taotao: group: ${spring.application.name} version: ${ttcVersion} title: 系统管理模块 + packages-to-scan: com.taotao.cloud.ddd.facade.controller.* metrics: enabled: true druid: @@ -1533,6 +1534,7 @@ logging: #org.springframework.security.oauth2: off #org.springframework.boot.autoconfigure: off #org.elasticsearch.client: debug + org.zalando.logbook.Logbook: TRACE test: baseUrl: https://www.baidu.com @@ -1744,3 +1746,40 @@ herodotus: validate: local jwk: certificate: standard + + +logbook: + predicate: + include: + - path: /api/** + methods: + - GET + - POST + - path: /actuator/** + exclude: + - path: /actuator/health + - path: /api/admin/** + methods: + - POST + filter.enabled: true + secure-filter: + enabled: true + format: + style: http + strategy: body-only-if-status-at-least + minimum-status: 400 + obfuscate: + headers: + - Authorization + - X-Secret + parameters: + - access_token + - password + write: + chunk-size: 1000 + attribute-extractors: + - type: JwtFirstMatchingClaimExtractor + claim-names: [ "sub", "subject" ] + claim-key: Principal + - type: JwtAllMatchingClaimsExtractor + claim-names: [ "sub", "iat" ] diff --git a/taotao-cloud-ddd-domain/build.gradle b/taotao-cloud-ddd-domain/build.gradle index 2a433b3..ec781a7 100644 --- a/taotao-cloud-ddd-domain/build.gradle +++ b/taotao-cloud-ddd-domain/build.gradle @@ -125,6 +125,14 @@ dependencies { api 'com.github.oshi:oshi-core:6.6.2' + api 'org.zalando:logbook-spring-boot-starter:3.9.0' + api 'org.zalando:logbook-httpclient5:3.9.0' + api 'org.zalando:logbook-netty:3.9.0' + api 'org.zalando:logbook-okhttp:3.9.0' + api 'org.zalando:logbook-okhttp2:3.9.0' + api 'org.zalando:logbook-openfeign:3.9.0' + api 'org.zalando:logbook-spring-webflux:3.9.0' + //api "io.github.shuigedeng:taotao-cloud-starter-apt") //annotationProcessor "io.github.shuigedeng:taotao-cloud-starter-apt")