ApiBoot Logging整合Spring Security安全上报日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: `ApiBoot Logging`在上报日志时虽然是一般通过内网的形式部署,不过安全方面还是主要依赖于服务器的`安全策略`(防火墙),为了提高日志上报的安全性,`ApiBoot Logging`支持了整合`Spring Security`来使用`Basic Auth`的形式上传日志信息。

ApiBoot Logging在上报日志时虽然是一般通过内网的形式部署,不过安全方面还是主要依赖于服务器的安全策略(防火墙),为了提高日志上报的安全性,ApiBoot Logging支持了整合Spring Security来使用Basic Auth的形式上传日志信息。

创建Logging Admin项目

我们需要在集成ApiBoot Logging Admin项目内添加Spring Security相关依赖来完成安全配置,我们需要创建一个Logging Admin项目。

集成Spring Security

Logging Admin项目pom.xml文件内添加Spring Security依赖,如下所示:

<!--SpringBoot Security-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置Spring Security认证用户

我们使用SpringBoot集成Spring Security提供的配置文件的方式配置Basic User信息,这种方式使用的是内存方式,用户信息被存储在内存中,如果你需要从数据库内读取,可以查看Spring SecurityUserDetails具体使用方法。

application.yml文件添加如下配置:

spring:
  # 配置内存方式Spring Security用户信息
  security:
    user:
      name: admin
      password: admin123

创建Logging Client项目

我们的业务服务需要集成ApiBoot Logging依赖(作为Logging Client进行上报请求日志),可参考【{% post_path apiboot-unified-manage-request-logs %}】文章内容创建项目。

配置安全上报

如果使用过Eureka的小伙伴应该对路径配置Basic User的方式不陌生,格式为:username:password@ip:port

application.yml修改上报的Logging Admin路径如下所示:

api:
  boot:
    logging:
      # 美化打印日志
      format-console-log-json: true
      # 控制台显示打印日志
      show-console-log: true
      # 配置Logging Admin
      admin:
        server-address: admin:admin123@127.0.0.1:8081

我们在Logging Admin配置的用户名为:admin,密码为:admin123,而@符号后面就是Logging AdminIP地址以及端口号

测试

下面我们进行测试Spring Security是否起到了作用。

依次启动Logging AdminLogging Client,通过以下命令访问接口:

➜ ~ curl http://localhost:8080/test\?name\=admin 
你好:admin

Logging Admin控制台可以看到上报的请求日志信息时,证明我们已经安全的上报了日志,如果Logging Client控制台打印401 Exception认证错误信息,请检查Logging Client配置的路径Basic User是否正确。

敲黑板,划重点

请求日志是用来检查接口的稳定性、排除一些请求异常问题的主要凭据,所以我们尽可能要保证数据的有效性、安全性,建议搭配Spring Security一块使用ApiBoot Logging

代码示例

如果您喜欢本篇文章请为源码仓库点个Star,谢谢!!!
本篇文章示例源码可以通过以下途径获取,目录为apiboot-logging-integrates-spring-security

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
16天前
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
67 5
|
22天前
|
安全 Java 测试技术
如何在 Spring Boot 中禁用 Actuator 端点安全?
如何在 Spring Boot 中禁用 Actuator 端点安全?
60 1
|
2月前
|
安全 Java 对象存储
安全性考量:Spring Security与Netflix OSS在微服务安全中的作用
安全性考量:Spring Security与Netflix OSS在微服务安全中的作用
45 1
logging 日志 模块
logging 日志 模块
|
4月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
4月前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
63 0
|
4月前
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
74 0
|
4月前
|
监控 Java Serverless
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
|
4月前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
4月前
|
Java Linux C++
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑