24.Spring-Boot-Actuator与Spring-Security整合应用
文章是指,在生产环境不是每一个用户都可以查看监控springboot应用的运行情况,通过整合spring security配置指定用户访问Actuator。
Spring Boot包含了一些额外的特性,可以帮助您在应用程序在上生产时监控和管理应用程序。您可以选择使用HTTP管理监视您的应用程序。端点,带有JMX,甚至是远程shell (SSH或Telnet)。审计、健康和度量收集。可以自动应用到您的应用程序中。
Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans以及一些环境属性等。
Actuator的定义:
官方文档:
An actuator is a manufacturing term, referring to a mechanical device for moving or controlling something. Actuators can generate a large amount of motion from a small change.
翻译后:
执行器是制造术语,指移动或控制某物的机械装置。执行器可以从一个小的变化产生大量的运动。
增加Actuator到你的maven工程中:
在Spring MVC应用程序,Spring Boot Actuator 将自动配置所有启用的端点通过HTTP公开。默认的约定是使用端点的id作为URL路径。默认情况下,所有敏感的HTTP端点都是安全的,只有具有执行器角色的用户可以访问它们。具体Id介绍可参考官方文档。
如果你在防火墙后面部署应用程序,你可能更喜欢所有的Actuator。可以在不需要身份验证的情况下访问端点。
在application.properties中设置
management.security.enabled=false 这样所有的用户都可以用Actuator。
默认情况下,Actuator端点暴露在服务于常规HTTP的同一个端口上,即就是和你的应用端口是一致的。
如果你的应用程序是公开部署的,你可能希望添加“Spring Security”来处理用户身份验证。当“Spring Security”被添加时,默认的“basic”身份验证将被使用。
具体配置过程如下:
1.配置application.properties
2.增加SecurityConfig.java类,配置spring-security
3.添加UserDetailsServiceImpl.java,用于登录时进行数据库认证
3.controller中添加代码,用户接受登录参数,调用认证服务
5.运行项目
登录页面
登录认证失败提示
通过非admin用户登录,成功页面
然后在地址栏输入ACTUATOR 端点,提示访问拒绝,必须拥有SUPERADMIN角色权限
admin用户登录,访问http://localhost:8080/myweb/mappings
访问http://localhost:8080/myweb/metrics
微信公众号