From 99ee59f205a37a596e2813c5f3d4b8e8a80a0cbc Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Mon, 12 Oct 2020 17:14:16 +0800 Subject: [PATCH 1/5] =?UTF-8?q?:sparkles:=20=E6=B7=BB=E5=8A=A0=E6=B6=88?= =?UTF-8?q?=E8=B4=B9=E8=80=85=E9=85=8D=E7=BD=AE=EF=BC=8Cbean=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20ConditionalOnMissingBean=20=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E7=94=A8=E6=88=B7=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/kafka/KafkaAutoConfiguration.java | 24 ++++--- .../hccake/starter/kafka/KafkaProperties.java | 69 +++++++++++++++++-- 2 files changed, 77 insertions(+), 16 deletions(-) diff --git a/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaAutoConfiguration.java b/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaAutoConfiguration.java index 24087f0f..1800fa62 100644 --- a/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaAutoConfiguration.java +++ b/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaAutoConfiguration.java @@ -1,11 +1,14 @@ package com.hccake.starter.kafka; +import com.hccake.extend.kafka.KafkaConsumerBuilder; import com.hccake.extend.kafka.KafkaExtendProducer; import com.hccake.extend.kafka.KafkaProducerBuilder; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Scope; /** * @author lingting 2020/7/28 21:17 @@ -16,20 +19,23 @@ import org.springframework.context.annotation.Bean; public class KafkaAutoConfiguration { @Bean + @ConditionalOnMissingBean(KafkaExtendProducer.class) public KafkaExtendProducer stringKafkaExtendProducer(KafkaProperties properties) { KafkaProducerBuilder builder = new KafkaProducerBuilder() .addAllBootstrapServers(properties.getBootstrapServers()).putAll(properties.getExtend()); - if (properties.getKeySerializer() != null || properties.getKeySerializerClassName() != null) { - builder.keySerializer(properties.getKeySerializer() == null ? properties.getKeySerializerClassName() - : properties.getKeySerializer().getName()); - } - - if (properties.getValueSerializer() != null || properties.getValueSerializerClassName() != null) { - builder.valueSerializer(properties.getValueSerializer() == null ? properties.getValueSerializerClassName() - : properties.getValueSerializer().getName()); - } + builder.keySerializer(properties.getKeySerializerClassName()); + builder.valueSerializer(properties.getValueSerializerClassName()); return builder.build(); } + @Bean + @Scope("prototype") + @ConditionalOnMissingBean(KafkaConsumerBuilder.class) + public KafkaConsumerBuilder consumerBuilder(KafkaProperties properties) { + return new KafkaConsumerBuilder().addAllBootstrapServers(properties.getBootstrapServers()) + .keyDeserializer(properties.getKeyDeserializerClassName()) + .valueDeserializer(properties.getValueDeserializerClassName()).groupId(properties.getGroupId()); + } + } diff --git a/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaProperties.java b/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaProperties.java index d80ade7e..1031ea2f 100644 --- a/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaProperties.java +++ b/ballcat-starters/ballcat-spring-boot-starter-kafka/src/main/java/com/hccake/starter/kafka/KafkaProperties.java @@ -1,13 +1,15 @@ package com.hccake.starter.kafka; -import lombok.Data; -import org.apache.kafka.common.serialization.Serializer; -import org.apache.kafka.common.serialization.StringSerializer; -import org.springframework.boot.context.properties.ConfigurationProperties; - +import cn.hutool.core.util.StrUtil; import java.util.HashMap; import java.util.Map; import java.util.Set; +import lombok.Data; +import org.apache.kafka.common.serialization.Deserializer; +import org.apache.kafka.common.serialization.Serializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.springframework.boot.context.properties.ConfigurationProperties; /** * @author lingting 2020/7/28 21:15 @@ -16,6 +18,11 @@ import java.util.Set; @ConfigurationProperties(prefix = "ballcat.starter.kafka") public class KafkaProperties { + /** + * 用于指定分组 + */ + private String groupId; + /** * 所属服务 */ @@ -27,7 +34,7 @@ public class KafkaProperties { private Class> keySerializer = StringSerializer.class; /** - * key 序列化 类名 + * key 序列化 类名, 如果填写本值则 valueSerializer 无效 */ private String keySerializerClassName; @@ -37,13 +44,61 @@ public class KafkaProperties { private Class> valueSerializer = StringSerializer.class; /** - * value 序列化 类名 + * value 序列化 类名, 如果填写本值则 valueSerializer 无效 */ private String valueSerializerClassName; + /** + * key 反序列化 + */ + private Class> keyDeserializer = StringDeserializer.class; + + /** + * key 反序列化 类名, 如果填写本值则 keyDeserializer 无效 + */ + private String keyDeserializerClassName; + + /** + * value 反序列化 + */ + private Class> valueDeserializer = StringDeserializer.class; + + /** + * value 反序列化 类名, 如果填写本值则 valueDeserializer 无效 + */ + private String valueDeserializerClassName; + /** * 额外参数 */ private Map extend = new HashMap<>(); + public String getKeyDeserializerClassName() { + if (StrUtil.isNotEmpty(keyDeserializerClassName)) { + return keyDeserializerClassName; + } + return getKeyDeserializer().getName(); + } + + public String getValueDeserializerClassName() { + if (StrUtil.isNotEmpty(valueDeserializerClassName)) { + return valueDeserializerClassName; + } + return getValueDeserializer().getName(); + } + + public String getKeySerializerClassName() { + if (StrUtil.isNotEmpty(keySerializerClassName)) { + return keySerializerClassName; + } + return getKeySerializer().getName(); + } + + public String getValueSerializerClassName() { + if (StrUtil.isNotEmpty(valueSerializerClassName)) { + return valueSerializerClassName; + } + return getValueSerializer().getName(); + } + } From b56fa0480cbb77cf2b350f410c9db0b19f80c03f Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:11:28 +0800 Subject: [PATCH 2/5] =?UTF-8?q?:sparkles:=20xss=E3=80=81monitor=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/conf/config/MonitorProperties.java | 24 ++++++++++++++ .../conf/config/SecurityProperties.java | 27 ++++++++++++++++ .../conf/{config => web}/FilterConfig.java | 31 ++++++++++--------- .../main/resources/META-INF/spring.factories | 6 ++-- 4 files changed, 72 insertions(+), 16 deletions(-) create mode 100644 ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java create mode 100644 ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/SecurityProperties.java rename ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/{config => web}/FilterConfig.java (56%) diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java new file mode 100644 index 00000000..0403619b --- /dev/null +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java @@ -0,0 +1,24 @@ +package com.hccake.ballcat.common.conf.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author lingting 2020-10-13 22:39 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "monitor") +public class MonitorProperties { + + /** + * 是否开启. + */ + private Boolean enabled = true; + + private String secretId; + + private String secretKey; + +} diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/SecurityProperties.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/SecurityProperties.java new file mode 100644 index 00000000..40d756ea --- /dev/null +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/SecurityProperties.java @@ -0,0 +1,27 @@ +package com.hccake.ballcat.common.conf.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author lingting 2020-10-13 22:39 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "ballcat.security") +public class SecurityProperties { + + private Xss xss; + + @Data + public static class Xss { + + /** + * 是否开启 + */ + private Boolean enabled = true; + + } + +} diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/FilterConfig.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java similarity index 56% rename from ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/FilterConfig.java rename to ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java index abe82b1e..396a5ca1 100644 --- a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/FilterConfig.java +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java @@ -1,9 +1,10 @@ -package com.hccake.ballcat.common.conf.config; +package com.hccake.ballcat.common.conf.web; +import com.hccake.ballcat.common.conf.config.MonitorProperties; import com.hccake.ballcat.common.core.filter.ActuatorFilter; import com.hccake.ballcat.common.core.filter.XSSFilter; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; @@ -19,13 +20,9 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnWebApplication public class FilterConfig { - @Value("${monitor.secret-id:ballcat-monitor}") - private String secretId; - - @Value("${monitor.secret-key:=BallCat-Monitor}") - private String secretKey; - @Bean + @ConditionalOnProperty(prefix = "ballcat.security.xss", name = "enabled", havingValue = "true", + matchIfMissing = true) public FilterRegistrationBean xssFilterRegistrationBean() { log.debug("XSS 过滤已开启===="); FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(new XSSFilter()); @@ -34,13 +31,19 @@ public class FilterConfig { } @Bean - public FilterRegistrationBean actuatorFilterRegistrationBean() { - log.debug("Actuator 安全过滤器已开启===="); + @ConditionalOnProperty(prefix = "monitor", name = "enabled", havingValue = "true", matchIfMissing = true) + public FilterRegistrationBean actuatorFilterRegistrationBean(MonitorProperties properties) { + log.debug("Actuator 过滤器已开启===="); FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - ActuatorFilter actuatorFilter = new ActuatorFilter(secretId, secretKey); - registrationBean.setFilter(actuatorFilter); - registrationBean.addUrlPatterns("/actuator/*"); - registrationBean.setOrder(0); + + if (properties.getEnabled()) { + // 监控开启 + ActuatorFilter actuatorFilter = new ActuatorFilter(properties.getSecretId(), properties.getSecretKey()); + registrationBean.setFilter(actuatorFilter); + registrationBean.addUrlPatterns("/actuator/*"); + registrationBean.setOrder(0); + } + return registrationBean; } diff --git a/ballcat-common/ballcat-common-conf/src/main/resources/META-INF/spring.factories b/ballcat-common/ballcat-common-conf/src/main/resources/META-INF/spring.factories index dcb5d1f4..92ae48fd 100644 --- a/ballcat-common/ballcat-common-conf/src/main/resources/META-INF/spring.factories +++ b/ballcat-common/ballcat-common-conf/src/main/resources/META-INF/spring.factories @@ -1,8 +1,10 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.hccake.ballcat.common.conf.config.FilterConfig,\ + com.hccake.ballcat.common.conf.web.FilterConfig,\ com.hccake.ballcat.common.conf.config.JacksonConfig,\ com.hccake.ballcat.common.conf.exception.ExceptionHandleAutoConfiguration,\ com.hccake.ballcat.common.conf.mybatis.MybatisPlusConfig,\ com.hccake.ballcat.common.conf.web.WebMvcConfig,\ - com.hccake.ballcat.common.conf.config.ExceptionHandleConfig + com.hccake.ballcat.common.conf.config.ExceptionHandleConfig,\ + com.hccake.ballcat.common.conf.config.SecurityProperties,\ + com.hccake.ballcat.common.conf.config.MonitorProperties From 1c3182de7e4e02468c4dfed6879a46dfb2236f14 Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:23:58 +0800 Subject: [PATCH 3/5] =?UTF-8?q?:zap:=20monitor.*=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=B0=20monitor.actuator.auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/conf/config/MonitorProperties.java | 26 ++++++++++++++----- .../ballcat/common/conf/web/FilterConfig.java | 17 ++++++------ ...torFilter.java => ActuatorAuthFilter.java} | 4 +-- 3 files changed, 31 insertions(+), 16 deletions(-) rename ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/{ActuatorFilter.java => ActuatorAuthFilter.java} (95%) diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java index 0403619b..138710e4 100644 --- a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java @@ -12,13 +12,27 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "monitor") public class MonitorProperties { - /** - * 是否开启. - */ - private Boolean enabled = true; + private Actuator actuator; - private String secretId; + @Data + public static class Actuator { - private String secretKey; + private Auth auth; + + @Data + public static class Auth { + + /** + * 是否开启. + */ + private Boolean enabled = true; + + private String secretId; + + private String secretKey; + + } + + } } diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java index 396a5ca1..a2e10518 100644 --- a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java @@ -1,7 +1,7 @@ package com.hccake.ballcat.common.conf.web; import com.hccake.ballcat.common.conf.config.MonitorProperties; -import com.hccake.ballcat.common.core.filter.ActuatorFilter; +import com.hccake.ballcat.common.core.filter.ActuatorAuthFilter; import com.hccake.ballcat.common.core.filter.XSSFilter; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -31,15 +31,16 @@ public class FilterConfig { } @Bean - @ConditionalOnProperty(prefix = "monitor", name = "enabled", havingValue = "true", matchIfMissing = true) - public FilterRegistrationBean actuatorFilterRegistrationBean(MonitorProperties properties) { + @ConditionalOnProperty(prefix = "monitor.actuator.auth", name = "enabled", havingValue = "true", + matchIfMissing = true) + public FilterRegistrationBean actuatorFilterRegistrationBean(MonitorProperties properties) { log.debug("Actuator 过滤器已开启===="); - FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - - if (properties.getEnabled()) { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + MonitorProperties.Actuator.Auth auth = properties.getActuator().getAuth(); + if (auth.getEnabled()) { // 监控开启 - ActuatorFilter actuatorFilter = new ActuatorFilter(properties.getSecretId(), properties.getSecretKey()); - registrationBean.setFilter(actuatorFilter); + ActuatorAuthFilter filter = new ActuatorAuthFilter(auth.getSecretId(), auth.getSecretKey()); + registrationBean.setFilter(filter); registrationBean.addUrlPatterns("/actuator/*"); registrationBean.setOrder(0); } diff --git a/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorFilter.java b/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorAuthFilter.java similarity index 95% rename from ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorFilter.java rename to ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorAuthFilter.java index 9f68651a..505adfa1 100644 --- a/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorFilter.java +++ b/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/filter/ActuatorAuthFilter.java @@ -23,7 +23,7 @@ import java.io.IOException; * @version 1.0 * @date 2019 /10/17 20:28 */ -public class ActuatorFilter extends OncePerRequestFilter { +public class ActuatorAuthFilter extends OncePerRequestFilter { private final String secretId; @@ -34,7 +34,7 @@ public class ActuatorFilter extends OncePerRequestFilter { * @param secretId the secret id * @param secretKey the secret key */ - public ActuatorFilter(String secretId, String secretKey) { + public ActuatorAuthFilter(String secretId, String secretKey) { this.secretId = secretId; this.secretKey = secretKey; } From bda3c1221a7e6b972134e4053be46883110ef85a Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:30:59 +0800 Subject: [PATCH 4/5] =?UTF-8?q?:zap:=20monitor.actuator.auth.*=20=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=20ballcat.actuator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/conf/config/MonitorProperties.java | 21 +++++++------------ .../ballcat/common/conf/web/FilterConfig.java | 9 ++++---- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java index 138710e4..a158cf3b 100644 --- a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/config/MonitorProperties.java @@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration; */ @Data @Configuration -@ConfigurationProperties(prefix = "monitor") +@ConfigurationProperties(prefix = "ballcat") public class MonitorProperties { private Actuator actuator; @@ -17,21 +17,14 @@ public class MonitorProperties { @Data public static class Actuator { - private Auth auth; + /** + * 是否开启. + */ + private Boolean auth = false; - @Data - public static class Auth { + private String secretId; - /** - * 是否开启. - */ - private Boolean enabled = true; - - private String secretId; - - private String secretKey; - - } + private String secretKey; } diff --git a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java index a2e10518..68804cdc 100644 --- a/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java +++ b/ballcat-common/ballcat-common-conf/src/main/java/com/hccake/ballcat/common/conf/web/FilterConfig.java @@ -31,15 +31,14 @@ public class FilterConfig { } @Bean - @ConditionalOnProperty(prefix = "monitor.actuator.auth", name = "enabled", havingValue = "true", - matchIfMissing = true) + @ConditionalOnProperty(prefix = "ballcat.actuator", name = "auth", havingValue = "true") public FilterRegistrationBean actuatorFilterRegistrationBean(MonitorProperties properties) { log.debug("Actuator 过滤器已开启===="); FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - MonitorProperties.Actuator.Auth auth = properties.getActuator().getAuth(); - if (auth.getEnabled()) { + MonitorProperties.Actuator actuator = properties.getActuator(); + if (actuator.getAuth()) { // 监控开启 - ActuatorAuthFilter filter = new ActuatorAuthFilter(auth.getSecretId(), auth.getSecretKey()); + ActuatorAuthFilter filter = new ActuatorAuthFilter(actuator.getSecretId(), actuator.getSecretKey()); registrationBean.setFilter(filter); registrationBean.addUrlPatterns("/actuator/*"); registrationBean.setOrder(0); From b41aa97903c063c8f71a626d0ee4e007070f5b32 Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:35:49 +0800 Subject: [PATCH 5/5] =?UTF-8?q?:zap:=20=E6=9B=B4=E6=96=B0=20sample?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 11 +++---- .../monitor/security/AuthHeaderProvider.java | 33 +++++++++++-------- .../src/main/resources/application.yml | 7 ++++ 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/ballcat-samples/ballcat-sample-admin-application/src/main/resources/application.yml b/ballcat-samples/ballcat-sample-admin-application/src/main/resources/application.yml index 684e476b..87f8b9c8 100644 --- a/ballcat-samples/ballcat-sample-admin-application/src/main/resources/application.yml +++ b/ballcat-samples/ballcat-sample-admin-application/src/main/resources/application.yml @@ -16,6 +16,11 @@ spring: ballcat: redis: key-prefix: 'ballcat:' + # actuator 加解密密钥 + actuator: + auth: true + secret-id: 'ballcat-monitor' + secret-key: '=BallCat-Monitor' security: oauth2: @@ -55,12 +60,6 @@ mybatis-plus: password: secret-key: '==BallCat-Auth==' -# 监控加解密密钥 -monitor: - secret-id: 'ballcat-monitor' - secret-key: '=BallCat-Monitor' - - # 定时任务相关配置 xxl: job: diff --git a/ballcat-samples/ballcat-sample-monitor/src/main/java/com/hccake/ballcat/monitor/security/AuthHeaderProvider.java b/ballcat-samples/ballcat-sample-monitor/src/main/java/com/hccake/ballcat/monitor/security/AuthHeaderProvider.java index 794f0491..f4757803 100644 --- a/ballcat-samples/ballcat-sample-monitor/src/main/java/com/hccake/ballcat/monitor/security/AuthHeaderProvider.java +++ b/ballcat-samples/ballcat-sample-monitor/src/main/java/com/hccake/ballcat/monitor/security/AuthHeaderProvider.java @@ -2,11 +2,11 @@ package com.hccake.ballcat.monitor.security; import cn.hutool.crypto.SecureUtil; import com.hccake.ballcat.common.core.constant.HeaderConstants; -import de.codecentric.boot.admin.server.domain.entities.Instance; -import de.codecentric.boot.admin.server.web.client.HttpHeadersProvider; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; +import de.codecentric.boot.admin.server.domain.entities.Instance; +import de.codecentric.boot.admin.server.web.client.HttpHeadersProvider; /** * @author Hccake @@ -16,30 +16,37 @@ import org.springframework.stereotype.Component; @Component public class AuthHeaderProvider implements HttpHeadersProvider { - @Value("${monitor.secret-id:ballcat-monitor}") + @Value("${ballcat.actuator.auth:false}") + private Boolean auth; + + @Value("${ballcat.actuator.secret-id:ballcat-monitor}") private String secretId; - @Value("${monitor.secret-key:=BallCat-Monitor}") + @Value("${ballcat.actuator.secret-key:=BallCat-Monitor}") private String secretKey; /** * 当授权中心剥离时,目前BallCat的设计是简单启动 所以不做独立的授权中心,在此记录下拓展使用方式 可以考虑 client_credentials 客户端授权模式 + * * @param instance * @return */ @Override public HttpHeaders getHeaders(Instance instance) { HttpHeaders headers = new HttpHeaders(); - // 当前时间戳 - long reqTime = System.currentTimeMillis(); - headers.set(HeaderConstants.REQ_TIME, String.valueOf(reqTime)); - // 客户端ID - headers.set(HeaderConstants.SECRET_ID, secretId); - // sign - String tempSign = new StringBuilder().append(reqTime).reverse().append(secretId).append(secretKey).toString(); - String sign = SecureUtil.md5(tempSign); - headers.set(HeaderConstants.SIGN, sign); + if (auth) { + // 当前时间戳 + long reqTime = System.currentTimeMillis(); + headers.set(HeaderConstants.REQ_TIME, String.valueOf(reqTime)); + // 客户端ID + headers.set(HeaderConstants.SECRET_ID, secretId); + // sign + String tempSign = + new StringBuilder().append(reqTime).reverse().append(secretId).append(secretKey).toString(); + String sign = SecureUtil.md5(tempSign); + headers.set(HeaderConstants.SIGN, sign); + } return headers; } diff --git a/ballcat-samples/ballcat-sample-monitor/src/main/resources/application.yml b/ballcat-samples/ballcat-sample-monitor/src/main/resources/application.yml index 7d586363..35e28b79 100644 --- a/ballcat-samples/ballcat-sample-monitor/src/main/resources/application.yml +++ b/ballcat-samples/ballcat-sample-monitor/src/main/resources/application.yml @@ -20,3 +20,10 @@ spring: monitor: secret-id: 'ballcat-monitor' secret-key: '=BallCat-Monitor' + +ballcat: + # actuator 加解密密钥 + actuator: + auth: true + secret-id: 'ballcat-monitor' + secret-key: '=BallCat-Monitor' \ No newline at end of file