文章是指,在生產環境不是每一個用戶都可以查看監控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
微信公眾號