ApiBoot Logging整合Spring Security
ApiBoot Logging
在上报日志时虽然是一般通过内网的形式部署,不过安全方面还是主要依赖于服务器的安全策略
(防火墙),为了提高日志上报的安全性,ApiBoot Logging
支持了整合Spring Security
来使用Basic Auth
的形式上传日志信息。
免费教程专题
恒宇少年在博客整理三套免费学习教程专题
,由于文章偏多
特意添加了阅读指南
,新文章以及之前的文章都会在专题内陆续填充
,希望可以帮助大家解惑更多知识点。
创建Logging Admin项目
我们需要在集成ApiBoot Logging Admin
项目内添加Spring Security
相关依赖来完成安全配置,我们需要创建一个Logging Admin
项目,可参考【将ApiBoot 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 Security
的UserDetails
具体使用方法。
application.yml文件添加如下配置:
spring:
# 配置内存方式Spring Security用户信息
security:
user:
name: admin
password: admin123
创建Logging Client项目
我们的业务服务需要集成ApiBoot Logging
依赖(作为Logging Client
进行上报请求日志),可参考【使用ApiBoot Logging进行统一管理请求日志】文章内容创建项目。
配置安全上报
如果使用过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 Admin
的IP地址
以及端口号
。
测试
下面我们进行测试Spring Security
是否起到了作用。
依次启动Logging Admin
、Logging Client
,通过以下命令访问接口:
➜ ~ curl http://localhost:8080/test\?name\=admin
你好:admin
在Logging Admin
控制台可以看到上报的请求日志信息时,证明我们已经安全的上报了日志,如果Logging Client
控制台打印401 Exception
认证错误信息,请检查Logging Client
配置的路径Basic User
是否正确。
敲黑板,划重点
请求日志是用来检查接口的稳定性、排除一些请求异常问题的主要凭据,所以我们尽可能要保证数据的有效性、安全性,建议搭配Spring Security
一块使用ApiBoot Logging
。
代码示例
本篇文章示例源码可以通过以下途径获取,目录为SpringBoot2.x/apiboot-logging-integrates-spring-security
: