最近,許多小夥伴吐槽pinpoint-web沒有登陸認證的問題,隱約記得在web的properties文件中有一個passoword配置,檢查後發現這個配置是用於,帶admin接口的接口認證用的。web
還被官方打上了FIXME,這是要「裸奔」的節奏啊。segmentfault
首先仍是看官網,着急使用的話仍是不要重複造輪子了,說不許已經有現成的解決思路了。找來找去我也只發現了這個:後端
其中的一個Commiter明確指出pinpoint不提供認證,須要本身實現。
好吧,那咱們就來本身造個輪子把。tomcat
pinpoint-web 後端接口採用的是Spring MVC來實現。爲了簡單快捷的實現咱們的要求,這裏我直接採用了servlet中的Filter + Basic Authentication來實現。app
前面提到的admin.password因爲可能在後期版本中移除,因此咱們仍是新建用戶名和密碼兩個配置吧。url
經過在web.xml給Filter注入參數的方式注入進去。細節能夠參考源碼和下面的部署方式。spa
方式1、code
固然能夠加入認證的Filter類後,徹底編譯pinpoint-web。xml
可是我相信研究過pinpoint源碼的小夥伴都感覺過那漫長的等待過程。因此建議使用方式二進行部署。blog
方式二
以將pinpoint-web部署到tomcat爲例。
一、在web.xml中增長以下配置:
<filter> <filter-name>basicAuthenticationFilter</filter-name> <filter-class>com.navercorp.pinpoint.web.interceptor.BasicAuthenticationFilter</filter-class> <init-param> <param-name>admin.username</param-name> <param-value>hyq</param-value> </init-param> <init-param> <param-name>admin.password</param-name> <param-value>hyq</param-value> </init-param> </filter> <filter-mapping> <filter-name>basicAuthenticationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
其中admin.username和admin.password
是你本身設置的密碼,必定要拿小本子記好。
二、將BasicAuthenticationFilter.class這個class文件拷貝
到com/navercorp/pinpoint/web/interceptor包下。
3.重啓pinpoint-web服務。
大功告成
都說要避免重複造輪子
可是每個輪子都有他的意義
有問題可直接在公衆號回覆與俠夢聯繫
對了,俠夢的開發筆記 回覆【認證】
能夠得到源代碼和編譯好的class
但願這篇文章可以幫到你。
歡迎來公衆號【俠夢的開發筆記】 一塊兒交流進步