小强哥博客

小强哥,小强哥博客,技术大咖

ranong项目总结-Spring Boot Actuator(二)

整理-Spring Boot Actuator(一)中说到了actuator的基本配置,包括如何查看health、info,如何自定义一个health,这偏文章整理一下如何对spring boot提供的健康信息加入安全策略。

安全策略有以下几种方式,

  • 增加身份认证
  • 增加https

身份认证

身份认证就是在访问/health的时候提供认证口令,在pom.xml中增加依赖,如下,

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

接着在application.properties中增加配置,如下,

# 取消默认健康检查
management.health.defaults.enabled=false
# 安全帐号、密码
security.user.name=admin1
security.user.password=admin2
# 会话创建策略使用 (always, never, if_required, stateless).
management.security.sessions=stateless
management.security.enabled=true
endpoints.health.sensitive=true

启动springboot程序,浏览器输入http://127.0.0.1:9090/health可以看到会让你输入用户名和密码,输入完成以后可以看到健康信息。 这里遇到一个奇怪的问题,management.security.sessions提供的四种会话状态(always, never, if_required, stateless)貌似都没有起到作用,我首次安全认证通过以后,后面关闭浏览器然后重新在浏览器输入health的地址,不需要任何认证也可以看到health信息,感觉就像是认证通过一次以后就不需要认证了

增加https

首先生成一个证书,如下,一路回车就好,

keytool -genkey -alias ranong -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/ranong.keystore -storepass 123456

接着在application.properties中加入如下代码,

management.ssl.enabled=true
management.ssl.key-store=classpath:ranong.jks
management.ssl.key-password=123456

启动springboot程序,浏览器输入https://127.0.0.1:9090/health可以看到健康信息。