

Arthas是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。
Arthas 最新发布了 3.5.0 版本,最近几个 release 版本带来下面两个主要特性:
Arthas 开源之后的第一个 issue 就是jad命令能否支持显示行号:
jad命令多年以后终于支持行号了,“不忘初心”,效果如下:
$ jad demo.MathGame main public class MathGame { private static Random random = new Random(); public int illegalArgumentCount = 0; public static void main(String[] args) throws InterruptedException { MathGame game = new MathGame(); while (true) { /*16*/ game.run(); /*17*/ TimeUnit.SECONDS.sleep(1L); } } public void run() throws InterruptedException { try { /*23*/ int number = random.nextInt() / 10000; /*24*/ List<Integer> primeFactors = this.primeFactors(number); /*25*/ MathGame.print(number, primeFactors); } catch (Exception e) { /*28*/ System.out.println(String.format("illegalArgumentCount:%3d, ", this.illegalArgumentCount) + e.getMessage()); } } public static void print(int number, List<Integer> primeFactors) { StringBuffer sb = new StringBuffer(number + "="); /*34*/ for (int factor : primeFactors) { /*35*/ sb.append(factor).append('*'); } /*37*/ if (sb.charAt(sb.length() - 1) == '*') { /*38*/ sb.deleteCharAt(sb.length() - 1); } 如果想不显示行号,使用
--lineNumber false参数即可。
鉴权主要通过两方面来支持:
as.sh/arthas-boot命令行参数支持配置用户名和密码auth命令在 Arthas attach 时,可以在命令行指定密码。比如:
java -jar arthas-boot.jar --password ppp 可以通过 --username 选项来指定用户,默认值是arthas。
也可以在 arthas.properties 里中配置 username/password 。命令行的优先级大于配置文件。
如果只配置username,没有配置password,则会生成随机密码,打印在~/logs/arthas/arthas.log中
Using generated security password: 0vUBJpRIppkKuZ7dYzYqOKtranj4unGh 连接到 arthas 后,直接执行命令会提示需要鉴权:
[arthas@37430]$ help Error! command not permitted, try to use 'auth' command to authenticates. 使用auth命令来鉴权,成功之后可以执行其它命令。
[arthas@37430]$ auth ppp Authentication result: true --username 选项来指定用户,默认值是arthas。打开浏览器,会有弹窗提示需要输入 用户名 和 密码。
成功之后,则可以直接连接上 web console 。
Arthas 采用的是 HTTP 标准的 Basic Authorization,客户端请求时增加对应的 Authorization header 即可。
例如,用户名是:admin,密码是 admin,则组合为字符串: admin:admin,base64 结果是: YWRtaW46YWRtaW4=,则 HTTP 请求增加Authorization header:
curl 'http://localhost:8563/api' \ -H 'Authorization: Basic YWRtaW46YWRtaW4=' \ --data-raw '{"action":"exec","command":"version"}' 最后打个广告,我们正在寻找小伙伴,特别是深圳的同学,欢迎大家加入。
1 monkeyWie 2021-03-17 12:03:23 +08:00 学历是硬性要求吗,好想加入你们团队 |
2 Kasumi20 2021-03-17 12:13:43 +08:00 性别是硬性要求吗,好想加入你们团队 |
3 hengyunabc OP @monkeyWie 现在要求越来越严格了 |