最近,许多小伙伴吐槽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
但愿这篇文章可以帮到你。
欢迎来公众号【侠梦的开发笔记】 一块儿交流进步