俠夢說pinpoint-增長web認證Basic Authentication

前言

最近,許多小夥伴吐槽pinpoint-web沒有登陸認證的問題,隱約記得在web的properties文件中有一個passoword配置,檢查後發現這個配置是用於,帶admin接口的接口認證用的。web

file

還被官方打上了FIXME,這是要「裸奔」的節奏啊。segmentfault

思路

首先仍是看官網,着急使用的話仍是不要重複造輪子了,說不許已經有現成的解決思路了。找來找去我也只發現了這個:後端

file

其中的一個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包下。

file

3.重啓pinpoint-web服務。

大功告成

file

都說要避免重複造輪子

可是每個輪子都有他的意義

有問題可直接在公衆號回覆與俠夢聯繫

對了,俠夢的開發筆記 回覆【認證】

能夠得到源代碼和編譯好的class

但願這篇文章可以幫到你。

歡迎來公衆號【俠夢的開發筆記】 一塊兒交流進步
相關文章
相關標籤/搜索