From d3b643c363f9eb8334dce1c64086cae55eb4f442 Mon Sep 17 00:00:00 2001 From: chenyuepan <3158614516@qq.com> Date: Fri, 27 Jun 2025 08:50:40 +0800 Subject: [PATCH] =?UTF-8?q?Spring=20Boot=20Admin=20=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 28 ++++++++++++----- .../aop/LogAspect.java | 3 -- .../config/CacheInitializer.java | 3 ++ .../config/SecurityConfig.java | 30 ++++++++++++++++++ src/main/resources/application.yml | 31 ++++++++++++++++++- 5 files changed, 83 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/example/venue_reservation_service/config/SecurityConfig.java diff --git a/pom.xml b/pom.xml index 2370e29..33481d8 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,11 @@ org.springframework.boot spring-boot-starter-security - + + + + + com.mysql mysql-connector-j @@ -161,11 +165,6 @@ com.fasterxml.jackson.core jackson-databind - - org.springframework.security - spring-security-config - 5.7.12 - com.alibaba @@ -218,8 +217,21 @@ knife4j-openapi3-jakarta-spring-boot-starter 4.5.0 - - + + + + + + + de.codecentric + spring-boot-admin-starter-client + 3.0.2 + + + + + + diff --git a/src/main/java/com/example/venue_reservation_service/aop/LogAspect.java b/src/main/java/com/example/venue_reservation_service/aop/LogAspect.java index d8bdb48..09904af 100644 --- a/src/main/java/com/example/venue_reservation_service/aop/LogAspect.java +++ b/src/main/java/com/example/venue_reservation_service/aop/LogAspect.java @@ -13,8 +13,6 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.common.TemplateParserContext; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -29,7 +27,6 @@ import org.springframework.web.context.request.ServletRequestAttributes; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.time.LocalDateTime; -import java.util.Arrays; @Aspect @Component diff --git a/src/main/java/com/example/venue_reservation_service/config/CacheInitializer.java b/src/main/java/com/example/venue_reservation_service/config/CacheInitializer.java index 0166ef3..5f8a5e5 100644 --- a/src/main/java/com/example/venue_reservation_service/config/CacheInitializer.java +++ b/src/main/java/com/example/venue_reservation_service/config/CacheInitializer.java @@ -8,6 +8,7 @@ import com.example.venue_reservation_service.utils.RedisUtil; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.List; @@ -22,6 +23,8 @@ public class CacheInitializer { @Resource private RedisUtil redisUtil; + + private final static String REDIS_KEY = "sensitive-word"; @PostConstruct // 在Bean初始化后执行[5](@ref) diff --git a/src/main/java/com/example/venue_reservation_service/config/SecurityConfig.java b/src/main/java/com/example/venue_reservation_service/config/SecurityConfig.java new file mode 100644 index 0000000..8f09993 --- /dev/null +++ b/src/main/java/com/example/venue_reservation_service/config/SecurityConfig.java @@ -0,0 +1,30 @@ +package com.example.venue_reservation_service.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.web.SecurityFilterChain; + +@Configuration +@EnableWebSecurity +public class SecurityConfig { + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http + .authorizeHttpRequests(auth -> auth + // 所有请求都无需认证 + .anyRequest().permitAll() + ) + .formLogin(AbstractHttpConfigurer::disable // 禁用表单登录 + ) + .httpBasic(AbstractHttpConfigurer::disable // 禁用 HTTP Basic + ) + .csrf(AbstractHttpConfigurer::disable // 开发环境建议禁用 CSRF + ); + + return http.build(); + } +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index def2604..fe315b6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,7 +1,7 @@ server: port: 9020 # servlet: -# context-path: /api +# context-path: / netty: port: 9030 @@ -50,6 +50,35 @@ spring: max-interval: 10000ms max-attempts: 3 multiplier: 2 + security: + user: + name: admin + password: admin123 + roles: ADMIN + boot: + admin: + client: + url: http://localhost:10020/ # 服务端地址 + username: admin # 服务端用户名 + password: admin123! # 服务端密码 + +# 暴露完整监控端点 +management: + endpoints: + web: + exposure: + include: '*' + endpoint: + health: + show-details: always + info: + enabled: true + metrics: + enabled: true + loggers: + enabled: true + server: + port: ${server.port} # knife4j的增强配置,不需要增强可以不配 knife4j: enable: true # 开启knife4j,无需添加@EnableKnife4j注解